亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

關(guān)于連等賦值

Joyven / 1462人閱讀

摘要:或者也不會改變結(jié)果為什么不是呢在中首先需要明白一點,中有種基本類型不能對其添加自定義屬性。

var foo = {n:1};
var bar = foo;
foo.x = foo = {n:2}; // 或者foo = foo.x = {n:2}也不會改變結(jié)果
console.log(foo);    // {n: 2}
console.log(bar);    // {n: 1, x: {n: 2}}

為什么bar不是{n: 2,x: {n: 2}}呢?

在JS中, 首先需要明白一點,js中有5種基本類型(string/number/boolean/null/undefined), 不能對其添加自定義屬性。而將對象賦值于一個變量時,其實只是讓該變量的指針指向?qū)ο螅?br>在賦值運(yùn)算中, 賦值會從右向左進(jìn)行,但是有一點, "." 的運(yùn)算會優(yōu)先賦值, 即發(fā)生如下:

1 => foo.x = {n: 2} 即指針指向的地址不變(即非重新指向新對象), 只是對指針指向的對象添加了一個屬性得到: {n: 1, x: {n: 2}}
2 => foo = {n: 2} 即foo重新指向了另一個新的對象
3 => bar的指針未有改變, 仍指向已經(jīng)被添加了新屬性的 {n:1, x: {n: 2}}

這一點需要和非連等區(qū)分開:

var foo = {n:1};
var bar = foo;
foo = {n: 2};
foo.x = {n: 2};
console.log(foo);    // {n: 2, x: {n: 2}}
console.log(bar);    // {n: 1}

所以,最后foo = {n: 2},bar={n:1,x: {n: 2}}
順帶一提,這也就是為什么有這么一道題:

var a = {n: 1};
var b = a;

b.n = 110;
console.log(a); //{n: 110}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/81629.html

相關(guān)文章

  • 由ES規(guī)范學(xué)JavaScript(二):深入理解“連等賦值”問題

    摘要:有這樣一個熱門問題其實這個問題很好理解,關(guān)鍵要弄清下面兩個知識點引擎對賦值表達(dá)式的處理過程賦值運(yùn)算的右結(jié)合性一賦值表達(dá)式形如的表達(dá)式稱為賦值表達(dá)式。賦值表達(dá)式是右結(jié)合的。 有這樣一個熱門問題: var a = {n: 1}; var b = a; a.x = a = {n: 2}; alert(a.x); // --> undefined alert(b.x); // --> {n: ...

    JasonZhang 評論0 收藏0
  • Python 基礎(chǔ)起步 (四) 變量是什么東西 ?

    摘要:變量是什么大家好,我回來啦,今天想為大家介紹里面一個神奇的東西變量。 變量是什么 Hello, 大家好,我回來啦,今天想為大家介紹Python里面一個神奇的東西:變量。其實這個東西真正要非常詳細(xì)的解釋的話要將好多,因為它至少包含以下幾種類型: 全局變量 (在模塊內(nèi)、在所有函數(shù)外面、在class外面是全局變量) 局部變量 (在函數(shù)內(nèi)、在class的方法內(nèi),未加self修飾就是局部變...

    tracy 評論0 收藏0
  • MobaXterm:遠(yuǎn)程終端登錄軟件封神選手

    摘要:復(fù)制粘貼斷線重連等常見行為很容易找到,不需要教程或口口相傳的暗示。參考十項全能的遠(yuǎn)程終端登錄軟件開源硬件佳軟介紹 提到SSH、Telnet等遠(yuǎn)程終端登錄,我相信很多人想到的都是PuTTY PuTTY通常用于Windows,但實際上可以多平臺運(yùn)行,因此不表達(dá)為Windows下的遠(yuǎn)程終端登錄 PuTTY足夠成熟、小巧、專注核心任務(wù),并且對編碼等常見坑的處理并不缺乏,這其實都是優(yōu)點。但PuT...

    plokmju88 評論0 收藏0
  • 《你不知道的JavaScript》 (中) 閱讀摘要

    摘要:這時候控制臺看到的是對象的快照,然而點開看詳情的話是這段代碼在運(yùn)行的時候,瀏覽器可能會認(rèn)為需要把控制臺延遲到后臺,這種情況下,等到瀏覽器控制臺輸出對象內(nèi)容時,可能已經(jīng)運(yùn)行,因此會在點開的時候顯示,這是的異步化造成的。 本書屬于基礎(chǔ)類書籍,會有比較多的基礎(chǔ)知識,所以這里僅記錄平常不怎么容易注意到的知識點,不會全記,供大家和自己翻閱; 上中下三本的讀書筆記: 《你不知道的JavaScri...

    stackvoid 評論0 收藏0
  • 【進(jìn)階1-4期】JavaScript深入之帶你走進(jìn)內(nèi)存機(jī)制

    摘要:引擎對堆內(nèi)存中的對象進(jìn)行分代管理新生代存活周期較短的對象,如臨時變量字符串等。內(nèi)存泄漏對于持續(xù)運(yùn)行的服務(wù)進(jìn)程,必須及時釋放不再用到的內(nèi)存。 (關(guān)注福利,關(guān)注本公眾號回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實戰(zhàn)、面試指導(dǎo)) 本周正式開始前端進(jìn)階的第一期,本周的主題是調(diào)用堆棧,今天是第4天。 本計劃一共28期,每期重點攻克一個面試重難點,如果你還不了解本進(jìn)階計劃...

    不知名網(wǎng)友 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<