js靜態(tài)作用域的功能。
更新時間:2006年12月25日 00:00:00 作者:
JS的作用域是個比較復(fù)雜的東西
JS的作用域是靜態(tài)的,當(dāng)定義一個function時,function的作用域是定義function時所在的作用域,而不是調(diào)用function時所在的作用域。
當(dāng)調(diào)用一個function時,就會創(chuàng)建一個新的作用域,在這個作用域中用var定義的變量就是局部變量,一般情況下function執(zhí)行結(jié)束之后這個調(diào)用時所創(chuàng)建的作用域就會被系統(tǒng)回收。
在function圈套定義時,如果里面定義的function被保存了下來(如:賦給一個全局變量)。那么它所在的作用域(調(diào)用外面function時所創(chuàng)建的作用域)也必須一起保存下來(也就是說外面function執(zhí)行結(jié)束時這個調(diào)用時所創(chuàng)建的作用域不會被系統(tǒng)回收,要等到保存下來的function被系統(tǒng)回收時系統(tǒng)一起回收)。
作用域保存下來在這個作用域中的所有局部變量當(dāng)然也都保存了下來。
JS的作用域是靜態(tài)的,當(dāng)定義一個function時,function的作用域是定義function時所在的作用域,而不是調(diào)用function時所在的作用域。
當(dāng)調(diào)用一個function時,就會創(chuàng)建一個新的作用域,在這個作用域中用var定義的變量就是局部變量,一般情況下function執(zhí)行結(jié)束之后這個調(diào)用時所創(chuàng)建的作用域就會被系統(tǒng)回收。
在function圈套定義時,如果里面定義的function被保存了下來(如:賦給一個全局變量)。那么它所在的作用域(調(diào)用外面function時所創(chuàng)建的作用域)也必須一起保存下來(也就是說外面function執(zhí)行結(jié)束時這個調(diào)用時所創(chuàng)建的作用域不會被系統(tǒng)回收,要等到保存下來的function被系統(tǒng)回收時系統(tǒng)一起回收)。
作用域保存下來在這個作用域中的所有局部變量當(dāng)然也都保存了下來。
相關(guān)文章
有關(guān)于JS構(gòu)造函數(shù)的重載和工廠方法
有關(guān)于JS構(gòu)造函數(shù)的重載和工廠方法,對此有需要的朋友,參考一下。2013-04-04
控制臺報錯object is not a function的解決方法
頁面的功能用不了,打開控制臺發(fā)現(xiàn)報錯:object is not a function,下面是原因與解決方法,有類似情況的朋友可以看看2014-08-08
javascript SpiderMonkey中的函數(shù)序列化如何進(jìn)行
JavaScript中如何進(jìn)行函數(shù)序列化,函數(shù)序列化的作用是什么?本文將介紹SpiderMonkey中的函數(shù)序列化,有需要的朋友可以參考下2012-12-12
JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用
這篇文章主要介紹了JavaScript中setTimeout和setInterval函數(shù)的傳參及調(diào)用,著兩個函數(shù)可以把要執(zhí)行的代碼在設(shè)定的一個時間點插入js引擎維護(hù)的一個代碼隊列中,需要的朋友可以參考下2016-03-03

