在特定对象的方法中调用属性的方式是什么-这是一个示例:
var myObject ={
firstProperty : 0,
secondProperty : 0,
myMethod : function(){
// this is where I'm not quite sure
$(this).firstProperty = 1;
}
}
我确定$(this).firstProperty = 1是错误的-但是我将如何在对象方法(自身,此等)中调用属性?
最佳答案
最好的方法是避免完全使用this
:
var myObject ={
firstProperty : 0,
secondProperty : 0,
myMethod : function(){
myObject.firstProperty = 1;
}
}
原因是
this
的含义随上下文而变化。例如,使用问题中的代码,当您执行document.getElementById('somelement').onclick = myObject.myMethod
时会发生什么?答案是firstProperty
将改为在somelement
上设置。同样是这样:var f = myObject.myMethod;
f(); // firstProperty is now set on the window object!
console.log(window.firstProperty); // Logs 1 to the console
所以要警告:)
关于javascript - Javascript对象文字-调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6781829/