function
setobj
(p);
p.name=
"bb"
}var p=
setobj
(p);
console.
log(p)
;
程式的執行結果是aa
// 匿名函式的this一般是指向window
var number=2;
var obj=})
()}var fn1=obj.fn1;
console.
log(number)
;//匿名函式呼叫後會立刻執行,匿名函式中的this指向的是window //4
fn1();
//9 obj.
fn1();
//27
console.
log(number)
;//8
console.
log(obj.number)
;//8
//只要函式內有區域性變數,就不用全域性的
//只要函式的閉包中有變數,就不用全域性的
//所有不帶this.字首的,都在函式作用域或者閉包中查詢
//匿名函式自調和普通函式呼叫時的this,都預設指向window
js閉包面試題
請看以下 在輸出臺的輸出情況 答案是4400,4401,4399,4400 首先,test函式做了什麼?test在自己的函式作用域內建立乙個變數n,以及乙個函式add,這時add就作為乙個閉包,它可以在外部訪問到test內部的變數n,並對其進行加法。然後test返回乙個物件,這個物件有乙個n變數以及...
面試題 閉包問題
function console.log y console.log x console.log y 輸出結果為 1 console.log x 輸出結果為 error,直接報錯 解析宣告變數 從右向左賦值,可分解為 y 1 var x y 可見 y 為全域性變數,x為閉包函式內的區域性變數,在co...
javascript閉包經典面試題
首先第一行,先看 var a fun 0 把0傳入 fun n,o 中,那麼 n 0,o undifine,而 fun n,o return 了 所以a就等於 所以a.fun 1 function 1 fun 1,0 所以會輸出0,同樣a.fun 2 function 2 fun 2,0 輸出0,以...