js底層運行機制 代碼演示 VO/GO
VO 變量對象
GO 全局對象
ECStack 執行環境棧
EC 全局執行上下文
var a = 12;
var b = a;
b = 13;
console.log(a);
var a = { n: 12 };
var b = a;
b['n'] = 13;
console.log(a.n);
var a = { n: 12 };
var b = a;
b = { n: 13 };
console.log(a.n);
/*
1.創建值
- 開闢一個堆 AAAFFF000
- 儲存鍵值對
name : '你好'
fn : 自執行函數執行,需要把obj.name 的值當做實參傳遞過來,這個時候obj還沒關聯 ==》 undefined.name
// Cannot read property 'name' of undefined ==》 undefined不能讀name屬性
*/
var obj = {
name: '你好',
fn: (function(x) {
return x + 10;
})(obj.name)
};
console.log(obj.fn);
var a = { n: 1 };
var b = a;
a.x = a = { n: 2 };
console.log(a.x); //undefined
console.log(b); /*
var a = { n: 1 };
var b = a;
a.x = a = { n: 2 };
console.log(a.x);
console.log(b); */
a.x = {n : 2} ; // 先創建一個堆 空間AAAFFF111,AAAFFF111 和 a.x 關聯
a = {n :2 } ; // 在把 AAAFFF111 和a關聯