国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript作用域、作用域鏈(菜鳥必看)

2019-11-20 09:41:38
字體:
供稿:網(wǎng)友

javascript的作用域和作用域鏈是我學(xué)習(xí)最痛苦的一部分,因為我花了好多時間看了好多技術(shù)文檔都沒有理解.大體知道什么意思了,然后還說不出之所以然來.

通過我大量的測試和看技術(shù)文檔總結(jié)了以下理解,雖然不是很有技術(shù)范但是確實能理解了。

1、javascript只有全局和局部之分,那些后臺語言的各種修飾符都沒有。在函數(shù)中不使用var則為全局。如下:

<script type="text/javascript"> varname="c#";//全局window.name="java";//全局 varlanguage=function() { alert(name); name="javascript";//全局 var name="JS";//局部 alert(name); }()   alert(name); </script> 

上面代碼中表示為全局的在都指向同一個變量,下面的定義會替換上面的。關(guān)于三個alert分別是underfind,js,javascript.這就是作用域起了作用了。

2、作用域鏈從0級開始依次往下排,所謂的依次往下排指的是子級的排列。在尋找變量的時候先從同級找再找父級。

在上面的例子中,

首先彈出的是language方法里的第一個alert,如果window全局是0,那么在例子中var name="js"這個就是1.第一個alert就在1中找,如果找不到在去0中找。這是它發(fā)現(xiàn)了同級有一個var name="js"但是它目前還沒有賦值,所以彈出underfind

第二個彈出是language方法里的第二個alert,同樣的他會在1里找也就是方法內(nèi)部。他找到了name而且賦值了js,所以彈出的是js

第三個彈出是最下面的alert,由于在方法內(nèi)部已經(jīng)給全局name重新賦值了,導(dǎo)致彈出的是javascript。

然后增加下一個鏈路我們在language中頂一個方法,如下:

<scripttype="text/javascript"> varname="javascript";//全局 window.name="javascript";//全局 varlanguage=function() { alert(name); name="javascript";//全局 varname="JS";//局部 alert(name);   var lovelanguage=function(){alert(name); }(); }()   alert(name);</script> 

此時lovelanguage里的alert彈出的是js因為他會找上一級也就是language里的name,所以。。。

以上就是小編為大家?guī)淼膉avascript作用域、作用域鏈(菜鳥必看)的全部內(nèi)容了,希望大家多多支持腳步之家。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大姚县| 亳州市| 宜昌市| 昭苏县| 泸水县| 稻城县| 革吉县| 红原县| 武汉市| 皮山县| 石台县| 个旧市| 清水河县| 雷州市| 秦安县| 贞丰县| 荥经县| 奉化市| 和龙市| 怀集县| 合水县| 宿松县| 保山市| 伊金霍洛旗| 成都市| 南川市| 顺义区| 河曲县| 保德县| 门源| 南雄市| 郴州市| 綦江县| 湘潭县| 肇州县| 师宗县| 油尖旺区| 安阳市| 晋宁县| 富蕴县| 玛纳斯县|