js靜態(tài)作用域的功能。
更新時(shí)間:2006年12月25日 00:00:00 作者:
JS的作用域是個(gè)比較復(fù)雜的東西
JS的作用域是靜態(tài)的,當(dāng)定義一個(gè)function時(shí),function的作用域是定義function時(shí)所在的作用域,而不是調(diào)用function時(shí)所在的作用域。
當(dāng)調(diào)用一個(gè)function時(shí),就會(huì)創(chuàng)建一個(gè)新的作用域,在這個(gè)作用域中用var定義的變量就是局部變量,一般情況下function執(zhí)行結(jié)束之后這個(gè)調(diào)用時(shí)所創(chuàng)建的作用域就會(huì)被系統(tǒng)回收。
在function圈套定義時(shí),如果里面定義的function被保存了下來(如:賦給一個(gè)全局變量)。那么它所在的作用域(調(diào)用外面function時(shí)所創(chuàng)建的作用域)也必須一起保存下來(也就是說外面function執(zhí)行結(jié)束時(shí)這個(gè)調(diào)用時(shí)所創(chuàng)建的作用域不會(huì)被系統(tǒng)回收,要等到保存下來的function被系統(tǒng)回收時(shí)系統(tǒng)一起回收)。
作用域保存下來在這個(gè)作用域中的所有局部變量當(dāng)然也都保存了下來。
JS的作用域是靜態(tài)的,當(dāng)定義一個(gè)function時(shí),function的作用域是定義function時(shí)所在的作用域,而不是調(diào)用function時(shí)所在的作用域。
當(dāng)調(diào)用一個(gè)function時(shí),就會(huì)創(chuàng)建一個(gè)新的作用域,在這個(gè)作用域中用var定義的變量就是局部變量,一般情況下function執(zhí)行結(jié)束之后這個(gè)調(diào)用時(shí)所創(chuàng)建的作用域就會(huì)被系統(tǒng)回收。
在function圈套定義時(shí),如果里面定義的function被保存了下來(如:賦給一個(gè)全局變量)。那么它所在的作用域(調(diào)用外面function時(shí)所創(chuàng)建的作用域)也必須一起保存下來(也就是說外面function執(zhí)行結(jié)束時(shí)這個(gè)調(diào)用時(shí)所創(chuàng)建的作用域不會(huì)被系統(tǒng)回收,要等到保存下來的function被系統(tǒng)回收時(shí)系統(tǒng)一起回收)。
作用域保存下來在這個(gè)作用域中的所有局部變量當(dāng)然也都保存了下來。
相關(guān)文章
簡(jiǎn)介JavaScript中charAt()方法的使用
這篇文章主要介紹了JavaScript中charAt()方法的使用詳解,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06JavaScript中把數(shù)字轉(zhuǎn)換為字符串的程序代碼
本篇文章是對(duì)JavaScript中把數(shù)字轉(zhuǎn)換為字符串的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06javascript 基礎(chǔ)簡(jiǎn)介 適合新手學(xué)習(xí)
在網(wǎng)絡(luò)或書籍所說的JavaScript大部分指客戶端JavaScript。2009-09-09javascript的delete運(yùn)算符知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是關(guān)于JS中delete運(yùn)算符的基礎(chǔ)知識(shí)點(diǎn),有需要的朋友們跟著學(xué)習(xí)下。2019-11-11