簡體   English   中英

Javascript Object 字面量 - 調用

[英]Javascript Object Literal - calling

在特定的 object 的方法中調用屬性的方式是什么 - 這是一個示例:

var myObject ={
    firstProperty : 0,
    secondProperty : 0,
    myMethod : function(){
         // this is where I'm not quite sure
          $(this).firstProperty = 1;
    }
}

我確定$(this).firstProperty = 1是錯誤的 - 但我將如何在 object 的方法中調用該屬性(self、this 等)?

最好的方法是完全避免使用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

所以請注意:)

具體object的方法內調用屬性的方式是什么

非常混亂....

我認為另一種方法是

如何從其中一種方法中引用 object 的屬性?

如果這是解釋您正在尋找的內容的准確方法,那么...

在這種情況下this將引用myObject

所以this.firstProperty應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM