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 数字相关的属性方法

类型判断 isNaN - 是否是 NaN(Not a Number)。主要用来判断 NaN 是否是 NaN,因为 NaN == NaN 是 false。 isNaN(NaN); ...

javascript的offset、client、scroll使用方法,相关属性解释原理

时间:2011-06-26 12:08  来源:http://www.workcss.com/  作者:蜗客div+css  点击:次 javascript 的offset、client、scr...

javascript基础(函数属性arguments,方法:call,apply)(二十)

1.函数属性arguments,方法:call,apply: /* * 除了this,在调用函数时,浏览器还传递了另一个隐含的参数 * 还有...

JavaScript 内置对象(二):Date 对象(构造函数、属性和方法)

Date 对象就是日期对象,它可以表示从年用毫秒的所有时间和日期。该对象是 JavaScript 内置对象中使用频率最高的一个对象。 1、Date 对象的构造函数 Date 对象的构造函数有以下4种:...

JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性。

JavaScript中hasOwnProperty函数方法是返回一个布尔值,指出一个对象是否具有指定名称的属性。 hasOwnProperty()使用方法: object.hasOwnPr...
  • sulinux
  • sulinux
  • 2014年12月29日 14:19
  • 434

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

DOM常用属性和方法 ID 姓名 年龄 出生日期 1 张三 25 1...
  • a125138
  • a125138
  • 2012年08月08日 17:57
  • 2319

JavaScript中常见的几种创建对象的方式:基于对象扩充属性和方法、基于工厂方式创建对象、基于构造函数和基于原型

//创建对象的方式1:基于对象的扩充其属性和方法。  var s=new Object();  s.name="zhangsan";  s.age=20;  s.say=function(){...
  • zzjiadw
  • zzjiadw
  • 2011年10月06日 01:47
  • 395

JavaScript 内置对象(一):Array 对象(构造函数、属性和方法)

Date 对象就是日期对象,它可以表示从年用毫秒的所有时间和日期。该对象是 JavaScript 内置对象中使用频率最高的一个对象。 1、Date 对象的构造函数 Date 对象的构造函数有以下4种:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javaScript Function 函数的相关属性和方法
举报原因:
原因补充:

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