JavaScript函数.prototype.call() 方法
call()方法允许分配属于一个对象的函数调用,并为不同的对象调用它。它为函数提供了新的this值。 call()方法允许您编写一次方法并允许它在另一个对象中继承,而无需为新对象重写方法。
句法:
myFunc.call([thisArg[, arg1, arg2, ...argN]])
参数:
- thisArg:调用myFunc函数时用作this的值。
- arg1, arg2, ..., argN:这些是上述函数的参数。
注意:在某些情况下, thisArg可能不是实际值。如果方法处于非严格模式,原始值将被转换为对象,而 null、 undefined将被替换为全局对象。
返回值:作为函数调用的结果返回指定的this值和参数。
示例 1:以下示例演示了调用对象的链式构造函数的用法。
html
html
html
html
html
输出:
示例 2:以下示例演示了使用call()方法调用匿名函数。
html
输出:
#0 Pigeon: King
#1 Crow: Fail
示例 3:以下示例演示了使用call方法来调用函数并为'this'指定上下文。
html
输出:
Rats typically sleep between 2 and 5 hours
示例 4:以下示例演示了使用call()方法调用函数而不指定第一个参数。
html
输出:
string value is Brad
注意:在严格模式下, this的值将是未定义的。
html
输出:
Cannot read property 'str' of undefined