我如何使用'这个"对象文字中的关键字?

时间:2015-03-26 23:19:02

标签: javascript function object this

如果我在同一个对象中声明一个对象和一个函数,如何使用该函数使用this来访问该对象?
例如:

var foo = {
    bar: function () { this.tail = 'torn'; },
    qux: new this.bar() {}
}
// foo.qux instanceof bar => true
// foo.qux.tail = 'torn' => true

我无法使用this,所以我该怎么办?

1 个答案:

答案 0 :(得分:2)

您没有将函数和对象分配给您重新定义符号foo绑定的同一个变量。每次设置foo =时,您都会将右侧的符号绑定到该符号。您无法使用this来访问该函数,因为它是一个不同的对象。如果你想要一个具有函数的对象,你必须像这样定义它



var foo = {
     myVal: 123,
     myFunction: function(){ return this.myVal;}
   }