js函数(5)

函数属性方法和构造函数

length属性

函数体中,arguments.length表示传入函数的实参个数。

prototype属性

指向一个对象的引用

call方法和apply方法

看作是某个对象的方法,通过调用方法的形式来间接调用函数

call()和apply()的第一个实参是要调用函数的母对象,它是调用上下文,在函数体内通过this来获得对它的引用。

想要以对象o的方法来调用函数f(),可以这样使用call()和apply():f.call(o)    f.apply(o);

在严格模式下,call()和apply()的第一个实参都会变成this值,哪怕传入的实参是原始值甚至是null 或undefined。

对于call()来说,第一个调用上下文实参之后的所有实参就是要传入待调用函数的值。

例如 f.call(o,1,2)  传入了两个参数  1,2;

对于apply()方法 传入的实参的形式都放在一个数组中:f.apply(o,[1,2])

传入apply的参数数组可以是类数组对象也可以是真实数组。实际上,可以将当前函数的arguments数组直接传入(另一个函数的)apply来调用另一个函数。

猜你喜欢

转载自www.cnblogs.com/Damocless/p/11781281.html