【问题标题】:How do I use 'this" keyword in an object literal? [closed]如何在对象文字中使用“this”关键字? [关闭]
【发布时间】:2015-03-26 23:19:01
【问题描述】:

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

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

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

【问题讨论】:

  • 当您重新分配变量时,通常会丢失旧值。
  • 在 JavaScript 中,您可以将变量定义为对象和函数。
  • 是,但不是同时。
  • 另外,请写一个标题,真正解释你在问什么
  • 不,你可以。证明:jsfiddle.net/morningrat/4qLj795h

标签: javascript function object this


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多