【发布时间】:2020-07-24 00:01:25
【问题描述】:
var bike = function() {
console.log(this.name);
}
var name = "Ninja";
var obj1 = { name: "Pulsar" };
var obj2 = { name: "Gixxer" };
var originalBikeFun = bike;
bike = function() {
originalBikeFun.call(obj1);
};
bike(); // "Pulsar"
bike.call(obj2); // "Pulsar"
我需要解释,因为我无法理解。当我将 originalBikeFun 分配给她时,顶部的功能(即自行车)是否被覆盖。这是如何运作的? (顺便说一句,我只复制 mdn 提供的示例)#javascript
【问题讨论】:
-
是的,它确实被覆盖了。毕竟,你给
bike分配了一个新函数。 -
bike = function() { originalBikeFun.call(obj1); };是的... -
bike只是对某个值的引用。当您将其设置为另一个值时,它将不再指向之前的值
标签: javascript function binding this bind