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;
          
    

      

  • 相关阅读:
    HDU2024 C语言合法标识符
    HDU2044 一只小蜜蜂…(简单递推)
    HDU2023 求平均成绩
    CodeForces 1185C1 Exam in BerSU (easy version) (贪心,排序)
    题目梳理(一)(2019.07.06~2019.07.20)
    Codeforces Gym 100989F(STL: map)
    UVA 10815 Andy's First Dictionary(STL: set)
    HDU2020 绝对值排序
    周二——4.2
    周一——4.1
  • 原文地址:https://www.cnblogs.com/Yellowshorts/p/4097740.html
Copyright © 2011-2022 走看看