第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

對象文字/初始化器中的自引用

對象文字/初始化器中的自引用

嚕嚕噠 2019-05-21 15:32:10
有沒有辦法在JavaScript中使用以下內(nèi)容?var foo = {    a: 5,    b: 6,    c: this.a + this.b  // Doesn't work};在當(dāng)前形式中,此代碼顯然會拋出引用錯(cuò)誤,因?yàn)閠his沒有引用foo。但是,是有什么辦法對早些時(shí)候宣布的其他屬性在對象文本的屬性值依賴?對象文字/初始化器中的自引用
查看完整描述

4 回答

?
汪汪一只貓

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊

好吧,我唯一可以告訴你的是吸氣劑:


var foo = {

  a: 5,

  b: 6,

  get c () {

    return this.a + this.b;

  }

};


foo.c; // 11

這是ECMAScript第5版規(guī)范引入的語法擴(kuò)展,大多數(shù)現(xiàn)代瀏覽器(包括IE9)都支持該語法。


查看完整回答
反對 回復(fù) 2019-05-21
?
夢里花落0921

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊

你可以這樣做:


var foo = {

   a: 5,

   b: 6,

   init: function() {

       this.c = this.a + this.b;

       return this;

   }

}.init();

這將是對象的某種一次初始化。


請注意,你實(shí)際上是分配的返回值init()來foo,所以你必須return this


查看完整回答
反對 回復(fù) 2019-05-21
?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

缺少明顯的簡單答案,所以為了完整性:


但是,是有什么辦法對早些時(shí)候宣布的其他屬性在對象文本的屬性值依賴?


不會。這里的所有解決方案都會推遲到創(chuàng)建對象之后(以各種方式),然后分配第三個(gè)屬性。在最簡單的方法是只是這樣做:


var foo = {

    a: 5,

    b: 6

};

foo.c = foo.a + foo.b;

所有其他人只是更間接的方式來做同樣的事情。(Felix's特別聰明,但需要?jiǎng)?chuàng)建和銷毀臨時(shí)函數(shù),增加復(fù)雜性;要么在對象上留下額外的屬性,要么[如果你的delete屬性] 影響對該對象的后續(xù)屬性訪問的性能。)

如果你需要它在一個(gè)表達(dá)式中,你可以在沒有臨時(shí)屬性的情況下做到這一點(diǎn):

var foo = function(o) {

    o.c = o.a + o.b;

    return o;

}({a: 5, b: 6});

或者當(dāng)然,如果您需要多次執(zhí)行此操作:


function buildFoo(a, b) {

    var o = {a: a, b: b};

    o.c = o.a + o.b;

    return o;

}

然后你需要使用它:


var foo = buildFoo(5, 6);


查看完整回答
反對 回復(fù) 2019-05-21
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

只需實(shí)例化一個(gè)匿名函數(shù):


var foo = new function () {

    this.a = 5;

    this.b = 6;

    this.c = this.a + this.b;

};


查看完整回答
反對 回復(fù) 2019-05-21
  • 4 回答
  • 0 關(guān)注
  • 698 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號