zoukankan      html  css  js  c++  java
  • JS函数的属性

    1.arguments.callee

            //经典的阶乘(递归)函数
            function factorial(num) {
                if (num <= 1) {
                    return 1;
                } else {
                    return num * factorial(num - 1);
                }
            }
            //消除函数名的耦合现象
            function factorial(num) {
                if (num <= 1) {
                    return 1;
                } else {
                    return num * arguments.callee(num - 1);//函数内部属性 [callee]
                }
            }
            var trueFactorial = factorial;
            factorial = function () {
                return 0;
            };
            alert(trueFactorial(5));//120  使用callee属性 接触函数名耦合状态 可以继续使用递归 否则返回0
            alert(factorial(5));    //0
    

    2.Length:表示函数希望接收的命名参数的个数

    3.prototype:在创建自定义引用类型以及实现继承时,该属性的作用极为重要,该属性不可枚举,因此使用for-in 无法发现

    方法:

    1.apply()和call()

      用途:在特定的作用域中调用函数,等于设置函数体内this对象的值

            function sum(num1, num2) {
                return num1 + num2;
            }
            function callSum(num1, num2) {
                return sum.call(this, num1, num2);//明确传入每一个参数
            }
            function callSum1(num1, num2) {
                return sum.apply(this, arguments);//传入arguments对象
            }
            function callSum2(num1, num2) {
                return sum.apply(this, [num1, num2]);//传入数组
            }
    
            alert(callSum1(10, 10));//20
            alert(callSum2(10, 10));//20
    

    2.bind():创建一个函数的实例,其this的值会被绑定到传给bind()函数的值

          window.color = "red";
            var o = { color: "blue" };
            function sayColor() {
                alert(this.color);
            }
            var objectSayColor=sayColor.bind(o);
            objectSayColor();//blue;
          
    

      

  • 相关阅读:
    unalias---取消命令别名
    alias---设置别名
    type---显示指定命令的类型
    logout命令用于退出当前登录的Shell
    enable&&builtin---shell内部命令
    read---读取变量值
    readonly&&declare&&unset &&export&&env环境变量
    fc---输出历史命令列表
    command---调用指定的指令并执行
    terminfo 数据库?
  • 原文地址:https://www.cnblogs.com/Yellowshorts/p/4097740.html
Copyright © 2011-2022 走看看