this
概念
????this是當前函數(shù)或模塊的執(zhí)行環(huán)境上下文浊猾,是一個指針型變量诞仓,在es6以前优构,其指向由其調用者確定瓷们,es6的箭頭函數(shù)則取決于其父作用域環(huán)境
綁定規(guī)則
? ? 默認綁定:嚴格模式下指向undefined,非嚴格下指向window
? ??隱士綁定:指向調用者(鏈式調用時遵循就近原則)
? ??顯示綁定:call歉铝、apply、bind
? ? ? ? call凑耻、apply
? ? ? ? bind(創(chuàng)建一個新的函數(shù))
? ??new
? ? ? ? new做了什么
? ? ? ? ? ? 創(chuàng)建對象送火;將其__proto__指向原對象的prototype;執(zhí)行構造函數(shù)中的代碼先匪;返回這個對象
? ??箭頭函數(shù)
? ? ? ? 沒有原型對象,沒有構造函數(shù),故不能new
? ? ? ? 沒有自己的this弃衍,向上借
優(yōu)先級
? ? new > 顯示 > 隱士 > 默認
習題
? ??
閉包
概念
? ? 閉包是指那些能夠訪問自由變量的函數(shù)
? ? 自由變量指的是在函數(shù)中使用的既不是函數(shù)參數(shù)又不是局部變量的變量
應用場景
? ? 柯里化函數(shù)
? ? 模塊:?手寫mini-commonjs
? ? 匿名立即執(zhí)行函數(shù),生成私有變量
? ? 緩存