最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 變量作用域及閉包第1/2頁

 更新時間:2009年08月07日 22:57:34   作者:  
作用域JavaScript 的變量作用域是按照函數(shù)劃分的,為了快速的了解它的特性,我們通過實(shí)例來進(jìn)行演示。
實(shí)例一:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
var i = 1;
// 彈出內(nèi)容為 1 true 的提示框
alert(window.i + ' ' + (window.i == i));
</script>

分析:
在全局定義的變量其實(shí)就是 window 對象的屬性。
上面的例子可以看到,我們定義全局變量的同時,window 對象會產(chǎn)生一個相應(yīng)的屬性,如何讓我們的代碼避免產(chǎn)生這個屬性呢,看下面的例子。
實(shí)例二:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
var document = 1;
window.onload = function(){
alert(document);
}
// 彈出內(nèi)容為 1 的提示框
alert(window.document);
</script>

這種情況是我們不想看到的,我們可以這么做:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
function test(){
var document = 1;
window.onload = function(){
alert(document);
}
}
test();
// 彈出內(nèi)容為 [object] 的提示框
alert(window.document);
</script>

為了使代碼更加簡潔,我們可以這樣:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
(function(){
var document = 1;
window.onload = function(){
alert(document);
}
})();
// 彈出內(nèi)容為 [object] 的提示框
alert(window.document);
</script>

分析:
這種運(yùn)行匿名方法的形式,在 JavaScript 的主流框架中經(jīng)常見到,這樣做可以避免產(chǎn)生不必要的 window 對象的屬性,減少沖突的可能。
實(shí)例三:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
(function(){
if('1' == '1'){
var i = 1;
}
// 彈出內(nèi)容為 1 的提示框
alert(i);
})();
</script>

分析:
變量的作用域是整個函數(shù),不是{}塊。
實(shí)例四:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
var i = 1;
// 彈出內(nèi)容為 1 的提示框
alert(i);
var i = 2;
// 彈出內(nèi)容為 2 的提示框
alert(i);
</script>

分析:
一個變量可以被重新定義,這個看起來有些怪,因?yàn)樵诤芏嗥渌Z言里這樣是行不通的。
實(shí)例五:
復(fù)制代碼 代碼如下:

<script type="text/javascript">
function test(){
i = 1;
}
test();
// 彈出內(nèi)容為 1 的提示框
alert(window.i);
</script>

分析:
如果對一個沒有初始化的變量進(jìn)行賦值操作,那么這個變量會作為全局變量。

相關(guān)文章

最新評論

佛坪县| 阆中市| 和田县| 闵行区| 射阳县| 乐至县| 大庆市| 泰州市| 博客| 达州市| 仲巴县| 荔浦县| 确山县| 遂川县| 固阳县| 固阳县| 凯里市| 南雄市| 宜兰市| 鄱阳县| 长沙县| 通州区| 壶关县| 聊城市| 康定县| 怀化市| 鄂托克旗| 昌图县| 平邑县| 桑植县| 吴川市| 专栏| 昌都县| 同心县| 特克斯县| 胶南市| 阳城县| 高青县| 富宁县| 新安县| 合水县|