亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

Javascript 鏈式作用域詳細介紹

2019-11-19 17:26:34
字體:
來源:轉載
供稿:網友

 Javascript 鏈式作用域

其實對于Javascript鏈式作用域的描述,包括,JS權威指南,都有些太冗長了--但是很準確:JavaScript中的函數運行在他們被定義的作用域里,而不是他們被執行的作用域里。

這句話有點難懂,但程序的設計,基本都是為了簡單,便于理解的。記住JS中經典的一句話是,一切皆對象。

說白了鏈式作用域,其實就是Javascript的一個特性:子函數中可以訪問父函數的所有變量。當然也包括全局變量window(一般的函數定義function a(){},其實都是window對象的子函數)。另外補充一下,函數定義有兩種方式,其實略有差別:

var a=function(){}和function a(){},

稍后再解釋他們的區別。

所以,我們看Crockford的<<Javascript語言精粹>>中就提到,要在一個函數中定義變量,要養成良好的習慣,請直接在函數開頭定義變量。JS中這點上有別于其它語言的要求----盡量推遲變量定義(使用前定義)。

我們看一下laruence提供的例子:

var name = 'laruence';functionecho(){   alert(name);   var name = 'eve';   alert(name);   alert(age);} echo();

這個例子其實很有迷惑性(會讓人錯誤的以為,輸出結果是:laruence,eve,error;其實結果是:undefined,eve,error),關鍵就是因為echo()函數中定義的var name='eve'。但其實換個寫法,這個例子就很清楚了:

var name = 'laruence';function echo() {   var name;   alert(name);   name = 'eve';   alert(name);   alert(age);} echo();

其實,上面的函數在JS引擎解析的時候,就會被解析成這樣。如果你是初學者,其實這樣理解就可以了。但如果你有別的程序的編程經驗,例如java。就很容易被慣用思維給套住了,PS:本人就是給套住的一個。所以,還是按照Crockford的建議把,定義變量,請在函數頂部??!

還記得之前的問題嗎?

 var a=function(){}和function a(){}的區別。

它們的區別還變量的定義比較類似。一切皆對象。

他們兩個在函數調用時,基本是等價的,但如果調用函數,在定義函數前就會有問題了。其實區別在于等號和function關鍵字。
var和function定義在預編譯的時候被提前,var只是占位,具體賦值要等到JS引擎執行到這行。而function定義會在JS引擎預編譯階段就被直接放入到調用對象中。

還是要舉例:

例子一:

alert( echo );//function echo(){return 1;};function echo(){return 1;};alert( a );//undefinedvar a=function(){return 1;};

所以,函數的定義也可以引申出一句話,請將函數定義放在頂部(先定義后調用)??!

其實還是習慣的問題,JS中一些代碼的優良習慣有別于其它語言。建議大家讀一下<<Javascript語言精粹>>。在開始學習一門語言時,最好從欣賞優秀的代碼開始。而JS中,大家都喜歡用一系列充滿迷惑性的代碼來加深自己的理解,這其實是一個誤區。

另外說一點,this關鍵字,laruence的解釋很簡潔到位:"誰調用,誰就是this"。英文版更詳細一點:“In JavaScript this always refers to the “owner” of the function we're executing, or rather, to the object that a function is a method of. ”,中文解釋:“在JavaScript中,this永遠引用我們所執行函數的擁有者,更準確的說,this引用一個函數的方法對象”。

看看下面的例子,也是誤導人的:

function a(){ g_value="uk";}a();alert(g_value);

其實,比較友好的寫法應該是這樣:

function a(){ this.g_value="uk";}a();//a.apply(this);alert(this.g_value);

關于this關鍵字,和別的語言也有區別。首先它并不是實例的引用,而是調用它的上下文。上面例子的a(),等價于a.apply(this);

call和apply的用法是一樣的,區別就在參數傳遞上。一個是一個一個傳參數的,一個是將參數作為類數組傳遞的(注意這個地方是類數組)。

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一个色综合导航| 欧美中文字幕在线| 国产精品老女人精品视频| 国产精品视频中文字幕91| 亚洲欧美一区二区三区在线| 国产成人精品在线视频| 欧美日韩午夜激情| 97在线看免费观看视频在线观看| 国产视频精品久久久| 亚洲丝袜在线视频| 亚洲图片欧美午夜| 国产精品爽黄69| 亚洲一区二区三区视频播放| 在线不卡国产精品| 亚洲美女视频网站| 色综合伊人色综合网| 日韩欧美国产激情| 在线日韩欧美视频| 国产精品久久久久久中文字| 日韩av免费在线看| 久久亚洲国产精品成人av秋霞| 日韩免费观看高清| 日韩高清有码在线| 亚洲第一福利网站| 日韩美女视频免费在线观看| 欧美极品少妇xxxxⅹ裸体艺术| 国产亚洲精品va在线观看| 久久精品久久久久电影| 国内精品小视频| 18久久久久久| 91产国在线观看动作片喷水| 欧美高跟鞋交xxxxxhd| 日本sm极度另类视频| 亚洲国产精品视频在线观看| 欧美在线视频观看免费网站| 亚洲欧美在线磁力| 日韩精品在线免费播放| 日韩亚洲精品电影| 国产视频久久网| 在线视频精品一| 国产一区二区三区毛片| 国产精品视频永久免费播放| 日韩免费av片在线观看| 欧美另类xxx| 成人午夜高潮视频| 国产精品久久久久国产a级| 国产亚洲精品va在线观看| 欧美日韩电影在线观看| 国产精品96久久久久久| 欧美性xxxxx极品娇小| 欧美最猛性xxxxx免费| 91精品久久久久| 九九热在线精品视频| 亚洲另类图片色| 国产亚洲人成网站在线观看| 国产香蕉精品视频一区二区三区| 国模私拍视频一区| 亚洲天堂av在线免费| 欧美亚洲成人xxx| 亚洲日本中文字幕免费在线不卡| 国产精品福利在线观看网址| 亚洲欧美国产日韩天堂区| 综合激情国产一区| 日韩日本欧美亚洲| 亚洲精品在线观看www| 亚洲美女在线看| www.日韩系列| 欧美激情亚洲另类| 亚洲欧洲在线免费| 在线亚洲欧美视频| 国产一区二区三区三区在线观看| 国产日韩在线亚洲字幕中文| 久久精品国产亚洲| 欧美成人免费一级人片100| 国产91网红主播在线观看| 日韩在线免费观看视频| 久久精品国产一区二区三区| 国产精品一区二区三区久久久| 亚洲激情在线观看视频免费| 国产精品综合网站| 国产做受69高潮| 国产欧美久久一区二区| 98精品国产自产在线观看| 国产精品视频一区国模私拍| 欧美电影免费观看大全| 亚洲精品久久久久久久久久久| 欧美日韩另类视频| 精品国产91乱高清在线观看| 欧美刺激性大交免费视频| 国产精品天天狠天天看| 草民午夜欧美限制a级福利片| 色综合天天狠天天透天天伊人| 欧美日韩福利视频| 在线亚洲欧美视频| 日韩在线观看网站| 亚洲激情 国产| 亚洲欧美国产精品专区久久| 国产精品九九九| 97婷婷大伊香蕉精品视频| 一区二区三区 在线观看视| 欧美性猛交xxxx偷拍洗澡| 午夜精品www| 国产精品视频资源| 少妇激情综合网| 深夜福利亚洲导航| 亚洲人成电影在线| 国产精品丝袜久久久久久不卡| 欧美国产视频日韩| 一个人看的www欧美| 欧美成人一区在线| 国产欧美在线播放| 久久精品电影网站| 91视频九色网站| 国产精彩精品视频| 欧美精品成人91久久久久久久| 精品国产视频在线| 中日韩美女免费视频网址在线观看| 久久精品成人欧美大片| 亚洲精品少妇网址| 亚洲美女又黄又爽在线观看| 亚洲激情免费观看| 国产一区二区三区欧美| 精品久久久久久久久久久| 日韩一区二区三区在线播放| 亚洲第一色在线| 91精品国产九九九久久久亚洲| 欧美大学生性色视频| 亚洲第一精品久久忘忧草社区| 国产视频精品自拍| 亚洲第一精品自拍| 欧美电影在线播放| 亚洲精品国产福利| 成人性生交大片免费观看嘿嘿视频| 97视频在线播放| 国产精品免费视频xxxx| 97久久久免费福利网址| 韩日精品中文字幕| 97超级碰碰人国产在线观看| 热99精品只有里视频精品| 日韩美女激情视频| 亚洲欧洲日本专区| 亚洲天堂网站在线观看视频| 亚洲欧美日韩天堂一区二区| 日韩第一页在线| 91久久精品久久国产性色也91| 国产精品亚洲网站| 亚洲人成电影网站| 欧美日韩免费网站| 国产成+人+综合+亚洲欧洲| 国产精品美女在线观看| 九九热精品在线| 91国偷自产一区二区三区的观看方式| 中文字幕精品网| 在线精品视频视频中文字幕| 欧美大全免费观看电视剧大泉洋| 久久最新资源网| 欧美日韩一区二区免费视频| 精品福利一区二区| 精品精品国产国产自在线| xxxxx91麻豆| 欧美精品videos性欧美| 亚洲曰本av电影| 在线丨暗呦小u女国产精品| 秋霞午夜一区二区|