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-11
BootStrap點(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-09
JavaScript代碼輕松實(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-10
JavaScript實(shí)現(xiàn)簡(jiǎn)易QQ聊天界面
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)易QQ聊天界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
js改變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-09
JS實(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-09
javascript實(shí)現(xiàn)的一個(gè)自定義長(zhǎng)度的文本自動(dòng)換行的函數(shù)。
javascript實(shí)現(xiàn)的一個(gè)自定義長(zhǎng)度的文本自動(dòng)換行的函數(shù)。...2007-08-08
js中查找最近的共有祖先元素的實(shí)現(xiàn)代碼
司徒正美給出的題,也嘗試著寫(xiě)一下。希望大家多多交流。2010-12-12

