前言

javascript中沒有塊級作用域(es6以前),javascript中作用域分為函數(shù)作用域和全局作用域。并且,大家可以認為全局作用域其實就是Window函數(shù)的函數(shù)作用域,我們編寫的js代碼,都存放在Window函數(shù)內(nèi)(這是個假設),也就是說javascript中只有函數(shù)作用域(前面假設做前提下)。

作用域是什么

作用域是一個盒子,盒子內(nèi)部的變量只能在當前盒子中使用,作用域盒子是可以嵌套的,內(nèi)部盒子的變量對父級盒子是不可見的,因為盒子封閉了他們并且盒子不透明,但是盒子可以看到父級盒子內(nèi)部定義的變量,因為內(nèi)部這個盒子與父級的變量同處一個空間,他們是互相看得到的。就像css中的盒模型一樣。

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓

以上這個圖分為3層作用域,全局作用域、foo函數(shù)作用域、bar函數(shù)作用域,我們可以清晰的看到三層作用域各自的范圍。

this是什么

我們經(jīng)常用到this,this是代表著什么?this是代表著當前方法執(zhí)行的環(huán)境上下文,那么何為環(huán)境上下文,通俗的說,誰調(diào)用了函數(shù),誰就是這個函數(shù)的環(huán)境上下文。例如:

網(wǎng)友評論