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;
          
    

      

  • 相关阅读:
    Jmeter-日期格式转换为时间戳
    Java中异常的处理
    Java中接口的新特性,为接口添加静态方法和默认方法
    Java接口的应用之代理模式
    Java之接口(interface)的理解
    JAVA中使用super调用属性、方法、构造器
    JAVA方法的重写
    Java之方法
    Java之匿名对象
    关于多态性的使用
  • 原文地址:https://www.cnblogs.com/Yellowshorts/p/4097740.html
Copyright © 2011-2022 走看看