相关疑难解决方法(0)

为什么JavaScript bind()是必要的?

示例1中的问题是'this'指的是全局名称而不是myName对象.

我理解使用bind()将this的值设置为特定对象,因此它解决了示例1中的问题,但为什么首先会出现此问题?它只是Javascript的创建方式吗?

我也想知道为什么示例3解决了问题以及示例2和3之间的区别.

this.name = "John"

var myName = {
  name: "Tom",
  getName: function() {
    return this.name
  }
}

var storeMyName = myName.getName; // example 1
var storeMyName2 = myName.getName.bind(myName); // example 2
var storeMyName3 = myName.getName(); // example 3

console.log("example 1: " + storeMyName()); // doesn't work
console.log("example 2: " + storeMyName2()); // works
console.log("example 3: " + storeMyName3); // works
Run Code Online (Sandbox Code Playgroud)

javascript bind this

43
推荐指数
2
解决办法
6943
查看次数

标签 统计

bind ×1

javascript ×1

this ×1