我正在阅读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