森林海
2019-04-19 19:15:27
function fn() {var a = {};var b = {};a.pro = b;b.pro = a;}fn();
4 回答

天涯盡頭無女友
TA貢獻1831條經(jīng)驗 獲得超9個贊
因為要回復的內(nèi)容比較多,所以我重新回答了一次。
紅寶石原文:引用計數(shù)的含義是跟蹤記錄每個值被引用的次數(shù)。
引用次數(shù)計算:
①當聲明一個變量并將一個引用類型賦值該變量時,引用次數(shù)為1;
②如果同一個值又被賦給另一個變量,則該值的引用次數(shù)+1。
③如果包含對該值引用的變量又取得另一個值,則該值的引用次數(shù)-1。
那么結合這個理論,變量a被創(chuàng)建并賦值(var a={})引用次數(shù)為1;
那么當b.pro=a;引用次數(shù)+1;
所以a的引用次數(shù)是2;
對于變量b也是同理。

梵蒂岡之花
TA貢獻1900條經(jīng)驗 獲得超5個贊
題主表達的內(nèi)容并不明確。按照樓上的說法應該是ab各被引用了一次。不清楚樓主在哪里看的引用了兩次。
a.pro = b; b.pro = a;
上面這樣的寫法其實是循環(huán)引用,即對象a中的屬性指向了對象b,對象b中的屬性指向了對象a。
如果層主還有什么其他疑惑,可以說出來。
添加回答
舉報
0/150
提交
取消