Лучший способ сделать это - вообще не использовать 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
Так что будьте осторожны:)