搜索

首页  >  问答  >  正文

对象字面量/初始值设定项中的自引用

<p>有什么方法可以让像下面这样的东西在 JavaScript 中工作吗?</p> <pre class="brush:php;toolbar:false;">var foo = { a: 5, b: 6, c: this.a + this.b // Doesn't work };</pre> <p>在当前形式中,此代码显然会引发引用错误,因为 <code>this</code> 并未引用 <code>foo</code>。但是<em>有</em>有什么方法可以让对象字面量属性中的值依赖于之前声明的其他属性吗?</p>
P粉921130067P粉921130067461 天前476

全部回复(2)我来回复

  • P粉615829742

    P粉6158297422023-08-30 11:54:25

    你可以这样做:

    var foo = {
       a: 5,
       b: 6,
       init: function() {
           this.c = this.a + this.b;
           return this;
       }
    }.init();

    这将是对象的某种一次性初始化。

    请注意,您实际上是将 init() 的返回值分配给 foo,因此您必须返回该值

    回复
    0
  • P粉322319601
  • 取消回复