1. 必包
1.1 什麼是必包
知乎上看到乙個解釋,覺得說的很好,就放在這吧
(比如我們在a函式裡面返回b函式,當 b 函式執行的時候,a函式上下文已經被銷毀了啊,但是我們依然能讀取到a作用域下的值?這是因為作用域鏈導致的,b函式引用了 a函式活動物件中的值的時候,即使 a的執行上下文被銷毀了,但是 js依然會讓 a函式活動物件活在記憶體中,b函式依然可以通過 b 函式的作用域鏈找到它,正是因為 js 做到了這一點,從而實現了閉包這個概念)
1.1 必包的兩種主要形式
1.2 必包的應用場景以及***
function
myobject()
//特權方法
this
.publicmethod
=function()
;}
***:
由於閉包會使得函式中的變數都被儲存在記憶體中,記憶體消耗很大,所以不能濫用閉包,解決方法是,在退出函式之前,將不使用的區域性變數全部刪除。
1.3 關於必包的常出現的考題
function
fun(
n,o)};
}// 參考 有點難
var name =
"the window"
;var object =;}
};alert
(object.
getnamefunc()
());
//the window
// 結論: 必包(所有)的自由變數的查詢雙子愛函式定義時候,像上級作用域查詢,而不是在函式執行時的地方
// 函式作為返回值
function
creat()
}const a =
200let fn =
creat()
fn()// 100
// 函式作為引數傳遞
function
creat(fn
)const a =
100functionfn(
)creat
(fn)
// 100
2. this
1. 什麼是this
2. this面試題目
var object =()
)}}object.
func()
// bar
// bar
// undefined
// bar
var obj1 =
}name =
'name'
var obj2 =
var obj3 =)(
)}}var obj4 =
}obj1.
sayname()
//obj1
obj3.
sayname()
// name
obj4.
sayname()
// name
obj1.
sayname
.call
(obj2)
//obj2
obj3.
sayname
.call
(obj2)
// name
obj4.
sayname
.call
(obj2)
//name
面經整理 LeetCode篇
題解 class solution object defmindistance self,word1,word2 type word1 str type word2 str rtype int len1 len word1 len2 len word2 if len1 0and len2 0 ret...
OCI面經 流程篇
hr call 電面 final interview 三輪vo lc49,bq,design hashmap hr call就是 如果簡歷符合jb上minimum requirement的話,好好準備一下簡歷就可以了吧,當時hr問了我很多實習的details 店面 店面沒有問lc,問了一些基礎,比如...
前端基礎面經
1 如果需要手動寫動畫,你認為最小時間間隔是多久,為什麼?阿里 大多數顯示器的預設頻率是60hz 即一秒重新整理60次 每重新整理一次時間需要1000ms 60 16.7ms,所以理論上最小時間間隔是16.7ms。2 css3動畫 簡單動畫的實現,如旋轉等 1 依靠css3中提出的三個屬性 tran...