国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關于連等賦值

Joyven / 1423人閱讀

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

var foo = {n:1};
var bar = foo;
foo.x = foo = {n:2}; // 或者foo = foo.x = {n:2}也不會改變結果
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), 不能對其添加自定義屬性。而將對象賦值于一個變量時,其實只是讓該變量的指針指向對象;
在賦值運算中, 賦值會從右向左進行,但是有一點, "." 的運算會優先賦值, 即發生如下:

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

這一點需要和非連等區分開:

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}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81629.html

相關文章

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

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

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

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

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

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

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

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

    stackvoid 評論0 收藏0
  • 【進階1-4期】JavaScript深入之帶你走進內存機制

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

    不知名網友 評論0 收藏0

發表評論

0條評論

Joyven

|高級講師

TA的文章

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