【发布时间】:2018-12-09 18:52:25
【问题描述】:
这里是function.prototype.bind()的MDN解释链接-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
我添加了一些 console.logs 来帮助我了解发生了什么。
var module = {
x: 42,
getX: function() {
return this.x;
}
};
var boundGetX = module.getX.bind(module);
console.log(boundGetX());
console.log(boundGetX().x);
console.log(boundGetX.x);
第一个console.log返回
42
这对我来说很有意义。
但是,第二个和第三个console.logs返回
undefined
这是为什么呢?该函数如何能够查看和记录模块属性 x,其存储值为 42,而 x 的 boundGetX 值未定义?
使用绑定函数后,boundGetX 现在不是指向module.getX 并且'this' 变量指向模块吗?
为什么boundGetX.x 不指向module.x?当boundGetX.x 未定义时,它如何能够成功记录module.x 的值?
【问题讨论】:
标签: javascript pointers undefined bind