JS閉包 面試題

2021-10-13 13:11:19 字數 681 閱讀 1132

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,以...