javascript連續(xù)賦值問(wèn)題
前幾天在搜索面試題時(shí)發(fā)現(xiàn)了這么一段代碼,執(zhí)行完后感覺(jué)完全不與所想的一樣
var a = { n : 1 }; var b = a; a.x = a = {n : 2}; console.log(a.x); console.log(b.x);
輸出結(jié)果為:
undefined
[object Object]
一開(kāi)始以為語(yǔ)句應(yīng)該是先給 a 賦值 {n : 2} , 然后再將 a.x 賦值 {n : 2} ;
但事實(shí)卻不是那樣,于是改動(dòng)了一下代碼,添加幾條log
var test; var a = { get test () { console.log("call a get"); return test; }, set test (value) { console.log("call a set"); test = value; } } var test2; var b = { get test2 () { console.log("call b get"); return test2; }, set test2 (value) { console.log("call b set"); test2 = value; } } a.test = { n : 1 }; b.test2 = a.test; console.log("begin"); a.test.x = a.test = {n : 2};
這樣,在begin后邊,這條賦值到底執(zhí)行了什么就一目了然了.
這是語(yǔ)句執(zhí)行時(shí)打印的log
先觸發(fā)了一次get,然后觸發(fā)了一次set.
本人猜想,該條語(yǔ)句執(zhí)行的順序?yàn)?先將左邊變量取出,然后執(zhí)行賦值.(在執(zhí)行該條語(yǔ)句前,先將對(duì)象引用取出,然后從右到左執(zhí)行賦值)
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡
相關(guān)文章
微信小程序自定義toast彈窗效果的實(shí)現(xiàn)代碼
微信小程序里面的自帶彈窗icon只有兩種,success和loading。這篇文章主要介紹了微信小程序之自定義toast彈窗效果的實(shí)現(xiàn)代碼 ,需要的朋友可以參考下2018-11-11利用CSS、JavaScript及Ajax實(shí)現(xiàn)圖片預(yù)加載的方法
預(yù)加載圖片是提高用戶體驗(yàn)的一個(gè)很好方法,實(shí)現(xiàn)圖片預(yù)加載可以使用css、JavaScript、Ajax三種方法。下面逐一給大家介紹利用CSS、JavaScript及Ajax實(shí)現(xiàn)圖片預(yù)加載的方法,需要的朋友參考下吧2016-11-11BootStrap點(diǎn)擊保存后實(shí)現(xiàn)模態(tài)框自動(dòng)關(guān)閉的思路(模態(tài)框)
這篇文章主要介紹了BootStrap點(diǎn)擊保存后實(shí)現(xiàn)模態(tài)框自動(dòng)關(guān)閉的思路(模態(tài)框),需要的朋友可以參考下2017-09-09JavaScript代碼輕松實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容禁止復(fù)制(代碼簡(jiǎn)單)
有些時(shí)候我們寫(xiě)的內(nèi)容不想被別人復(fù)制,在代碼中怎么實(shí)現(xiàn)的呢?下面小編給大家介紹javascript代碼輕松實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容禁止復(fù)制,感興趣的童鞋一起看看吧2015-10-10JavaScript實(shí)現(xiàn)簡(jiǎn)易QQ聊天界面
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)易QQ聊天界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07js改變html的原有內(nèi)容實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇js改變html的原有內(nèi)容實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10前端算法題解leetcode114二叉樹(shù)展開(kāi)為鏈表
這篇文章主要為大家介紹了前端算法題解leetcode114二叉樹(shù)展開(kāi)為鏈表,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09JS實(shí)現(xiàn)漂亮的淡藍(lán)色滑動(dòng)門(mén)效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)漂亮的淡藍(lán)色滑動(dòng)門(mén)效果代碼,涉及JavaScript通過(guò)自定義函數(shù)遍歷頁(yè)面元素及動(dòng)態(tài)設(shè)置元素屬性的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09javascript實(shí)現(xiàn)的一個(gè)自定義長(zhǎng)度的文本自動(dòng)換行的函數(shù)。
javascript實(shí)現(xiàn)的一個(gè)自定義長(zhǎng)度的文本自動(dòng)換行的函數(shù)。...2007-08-08js中查找最近的共有祖先元素的實(shí)現(xiàn)代碼
司徒正美給出的題,也嘗試著寫(xiě)一下。希望大家多多交流。2010-12-12