在特定对象的方法中调用属性的方式是什么-这是一个示例:

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/

10-09 23:14