JavaScript的函数(三)

函数也是对象,拥有属性和方法,就类似普通对象那样。
1,length属性

arguments.lenght 表示传入实参的个数。

函数的length属性时只读属性,代表形参的个数。可以用arguments.callee.length表示:

function check(args){
     var actual = args.length;
     var expected = args.callee.length;
     if(actual != expected){
         throw Error(`Expected ${expected} ,args got ${actual}`)
     }
 }
 function f(x,y,z){
     check(arguments);
     return x+y+z;
 }
 f(1,2)

2.call()和apply()方法

可以将call()和apply()看做是某个对象的方法,里面的第一个实参是要调用函数的母对象,即上下文,在函数体内是通过this来获得对它的引用。例如:

f.call(o)
f.apply(o)

对象o来调用函数f();

f.call(o,1,2)
f.apply(o,[1,2])

call和apply类似的功能,唯一不同就是传入实参的形式,call是单个传,apply是以数组的形式传入。

3,bind()方法

猜你喜欢

转载自www.cnblogs.com/tangjiao/p/8984675.html