为什么JavaScriptBIND()是必要的?示例1中的问题是“此”引用全局名称,而不是myName对象。我理解如何使用BIND()将它的值设置为特定的对象,因此它解决了示例1中的问题,但是为什么首先会出现这个问题呢?这仅仅是Javascript创建的方式吗?我还想知道为什么示例3解决了这个问题,以及示例2和示例3之间的区别。this.name = "John"var myName = { name: "Tom", getName: function() { return this.name }}var storeMyName = myName.getName; // example 1var storeMyName2 = myName.getName.bind(myName); // example 2var storeMyName3 = myName.getName(); // example 3console.log("example 1: " + storeMyName()); // doesn't workconsole.log("example 2: " + storeMyName2()); // worksconsole.log("example 3: " + storeMyName3); // works
3 回答

白板的微信
TA贡献1883条经验 获得超3个赞
这个 bind()
方法创建一个新函数,当调用该函数时,它的this关键字设置为提供的值,在调用新函数时,在任何提供的参数之前都有给定的参数序列。
var storeMyName = myName.getName;
name
bind()
Tom
Tom
添加回答
举报
0/150
提交
取消