如何使用'这个“;对象文字中的关键字

How do I use 'this" keyword in an object literal?

本文关键字:文字 关键字 对象 这个 何使用      更新时间:2023-09-26

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

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

我不能使用this,我该怎么办?

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

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