如果我在同一个对象中声明一个对象和一个函数,如何使用该函数使用this
来访问该对象?
例如:
var foo = {
bar: function () { this.tail = 'torn'; },
qux: new this.bar() {}
}
// foo.qux instanceof bar => true
// foo.qux.tail = 'torn' => true
我无法使用this
,所以我该怎么办?
答案 0 :(得分:2)
您没有将函数和对象分配给您重新定义符号foo绑定的同一个变量。每次设置foo =
时,您都会将右侧的符号绑定到该符号。您无法使用this
来访问该函数,因为它是一个不同的对象。如果你想要一个具有函数的对象,你必须像这样定义它
var foo = {
myVal: 123,
myFunction: function(){ return this.myVal;}
}