我有一个 JavaScript 中的普通对象,包含函数和值。
这是我的示例对象:
var MyObject = {
myData: 1,
a: function() {},
b: function() {}
}
现在在函数 a
中有一些逻辑会触发它,但它甚至应该改变 myData
的值属性(property)。
但是当我尝试从方法 b
获取它时,该值作为未定义的值出现,而不是更改的值。
我创建了一个 JsFiddle 有一个关于我的对象行为的小例子。我意识到这是 Javascript 的行为方式,但我不明白为什么。
最佳答案
问题是因为单击处理程序中的 this
引用了被单击的元素,而不是处理程序函数所属的对象。您需要缓存此
:
a: function () {
var self = this;
$('.setValue').click(function() {
self.myData = 2;
});
},
b: function () {
var self = this;
$('.getValue').click(function() {
alert(self.myData);
});
}
关于javascript - 改变值对象Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022433/