我对在 JS 中使用 call() 方法的原因很感兴趣。它似乎重复了通常的调用方法this
。
例如,我有一个带有 call() 的代码。
var obj = {
objType: "Dog"
}
f = function(did_what, what) {
alert(this.objType + " " + did_what + " " + what);
}
f.call(obj, "ate", "food");
输出是“Dog ate food”。但是同样的结果我可以将函数分配给对象。
var obj = {
objType: "Dog"
}
f = function(did_what, what) {
alert(this.objType + " " + did_what + " " + what);
}
obj.a = f;
obj.a("ate", "food");
结果是一样的。但是这种方式更容易理解,使用起来也方便。为什么需要 call() ?