我正在閱讀http://javascriptissexy.com/understand-javascripts-this-with-clarity-and-master-it/,並試圖更好地理解「這個」。使用forEach訪問對象數據,而不使用forEach的thisArg?
但是我遇到了令我困惑的事情:我似乎無法使用forEach的「this」參數訪問對象數據(在本例中爲「用戶」對象)。
我能得到的信息是這樣的:
var user = {
tournament:"The Masters",
data :[
{name:"T. Woods", age:37},
{name:"P. Mickelson", age:43}
],
clickHandler:function() {
this.data.forEach (function (person) {
console.log (person.name);
})
}
}
user.clickHandler(); //"T. Woods", "P. Mickelson"
然而,下面帶來了 「不確定」:
console.log (user.data.name);
或者這帶來了「this.user是未定義「:
console.log (this.user.data.name);
我錯過了什麼?是不是可以「回溯」,並且在forEach中,不使用thisArg訪問對象信息?或者,或許,與長期書寫的「人」等同的是什麼?
'user.data'是一個數組。嘗試'console.log(user.data [0] .name);'而不是 – friedi 2014-11-04 16:52:04
@friedi謝謝,這確實奏效。但是,因爲它是一個forEach循環,是否有辦法打印這兩個名字?或者是在thisArg變得必要的地方,或者forEach循環中的「for」循環?編輯:好吧,鉭下面說「不」。 – Terf 2014-11-04 16:59:38