【第22期】观点:IT 行业加班,到底有没有价值?

javaScript Function 函数的相关属性和方法

原创 2016年08月29日 11:38:04

【一】Function 函数的相关属性

          1.length  返回函数定义的参数个数。

        function funcTest(x, y, z) {
            console.log(arguments);
            return x + y + z;

        }
        console.log(funcTest.length); //输出3
           2.constructor  返回创建该对象的构造函数。

        var objFunc = new funcTest(1, 2, 3);
        console.log(funcTest.constructor);
           3 .caller  返回调用当前函数的函数。

        function A() {
            return A.caller;
        }

        function B() {
            return A();
        }

        console.log(B()); //返回B函数
        console.log(A()); //返回 undefined ,因为此时没有外层函数调用 A 函数

            4. arguments

               函数执行时内置的arguments对象,该对象返回该函数的所有参数,是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length。

       function argumentsTest() {
            console.log(arguments[2]); //输出 a
            return arguments;
       }
       console.log(argumentsTest(1, 2, 'a', 'v')); //输出 [1,2,"a","v"]
          5.callee

            callee 属性是 arguments 对象的一个成员,该属性仅当相关函数正在执行时才可用,返回当前被调用函数的函数对象.

            以下是利用callee 实现匿名函数的递归调用的例子。

        (
            function(count) {
                if (count <= 3) {
                    console.log(count);
                    arguments.callee(++count);
                }
            }
        )(0);//依次输出0,1,2,3

【二】Function 函数的相关方法

          1.toString()  返回定义该Function对象的字符串。

      function f1(a,b,c){
            return a+b+c;
      }

      console.log(f1.toString());
           2.valueOf()  返回Function对象本身。           
       console.log(f1.valueOf());

           3. call 和 apply 

              调用一个对象的方法,用另一个对象替换当前对象。

              语法 call(thisObj,arg1,arg2,arg3);
              语法 apply(thisObj,[arg1,arg2,arg3])
              它允许将函数的 this 对象从初始上下文变为由 thisObj 指定的新对象。 
              如果没有提供 thisObj 参数,则 global 对象被用作 thisObj。
              call与apply方法唯一不同的地方是,apply的第二个参数类型必须是Array,而call方法是将所有的参数列举出来,用逗号分隔。

       var obg = {
            name:'jun',
            say:function(somebody,age){
                return 'Hello '+somebody+' this is '+this.name+age;
            }
        }
       console.log(obg.say('bobo',10));//输出 Hello bobo this is jun10

       var obg1 = {
            name:'obg1',
        };
       console.log(obg.say.call(obg1,'js',100)); // Hello js this is obg1100
       console.log(obg.say.apply(obg1,['js',100])); // Hello js this is obg1100




















版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

JavaScript中的function使用方法

JavaScript入门易,可深究起来,竟搞得我如此混乱,这恐怕就是弱类型语言的特点吧?写惯了C++,还真是不适应。近日在google上搜来搜去,学习了半天function、this和prototyp...

javascript学习笔记—DOM常用API、属性、方法、函数

&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt; &lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt;DOM常用属性和方法&lt;/TITLE&gt; &lt;META NAME="Generator" CONTENT="EditPlus"&gt; &lt;META NAME="Author" CONTENT=""&gt; &lt;META NAME="Keywords" CONTENT=""

JavaScript函数内部属性和函数方法

函数是对象,有自己的属性和方法 。首先通过console下输出的函数属性方法来直观的看一下: 函数内部属性只要包括两个特殊的对象:arguments和this。 函数属性包括:length和proto...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)