av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript的作用域鏈?zhǔn)窃诤瘮?shù)定義時(shí)確定還是在調(diào)用時(shí)?

瀏覽:99日期:2023-04-01 14:03:35

問題描述

看到如下的一個(gè)閉包問題

var x=10;function fn() { console.log(x);}function show(f) { var x=20; (function() {f(); })();}show(fn);

打印的是10而不是20,x在取值時(shí)不是沿著作用域鏈向上尋找嗎,如果作用域鏈?zhǔn)窃诤瘮?shù)創(chuàng)建時(shí)確定結(jié)果就是10,如果是在調(diào)用時(shí)確定就應(yīng)該是20,有沒有關(guān)于作用域鏈準(zhǔn)確的說法?這里準(zhǔn)確的作用域鏈應(yīng)該是什么樣的?fn和show處于同一級(jí)還是fn在show內(nèi)?

問題解答

回答1:

作用域鏈?zhǔn)窃诤瘮?shù)定義的時(shí)候確定的.

在函數(shù)內(nèi)定義的變量不能在函數(shù)之外的任何地方訪問,因?yàn)樽兞績(jī)H僅在該函數(shù)的域的內(nèi)部有定義。相對(duì)應(yīng)的,一個(gè)函數(shù)可以訪問定義在其范圍內(nèi)的任何變量和函數(shù)。換言之,定義在全局域中的函數(shù)可以訪問所有定義在全局域中的變量。在另一個(gè)函數(shù)中定義的函數(shù)也可以訪問在其父函數(shù)中定義的所有變量和父函數(shù)有權(quán)訪問的任何其他變量。

https://developer.mozilla.org...

回答2:

作用域鏈?zhǔn)莿?dòng)態(tài)的,所以,在調(diào)用時(shí)確定。但是你的這個(gè)代碼中,閉包定義的function()是綁定的最外層的作用域function所申明的函數(shù)默認(rèn)是綁定的外層的作用域

(我也是在學(xué)習(xí)中。。。)

回答3:

在函數(shù)創(chuàng)建的時(shí)候創(chuàng)建一個(gè)包含全局變量對(duì)象的作用域鏈,儲(chǔ)存在內(nèi)部[[Scope]]屬性中。函數(shù)執(zhí)行的時(shí)候會(huì)創(chuàng)建一個(gè)執(zhí)行環(huán)境,通過復(fù)制[[Scope]]屬性中的對(duì)象,構(gòu)建執(zhí)行環(huán)境的作用域鏈,并把自己的活動(dòng)對(duì)象推入該作用域鏈的前端以此形成完整的作用域鏈。[[Scope]]保存的是對(duì)全局變量的引用,而不是值的復(fù)制。

var a = 10;function f(){ console.log(a);};function foo(){ a = 20; f();};foo() // 20;回答4:

閉包的調(diào)用方式和下面效果等價(jià)的,下面舉得例子通過對(duì)比說明了,作用域鏈?zhǔn)呛秃瘮?shù)定義時(shí)位置相關(guān)的。

var x=10;function fn(){ console.log(x);}function show() { var x=20; fn();}show(); //輸出10-----------------------var x=10;function show() { var x=20; function fn(){console.log(x); } fn();}show(); //輸出20

相關(guān)問題鏈接補(bǔ)充。/q/10...。有關(guān)于作用域鏈的討論。

回答5:

非嚴(yán)格模式任何IIFE的this指向都是window

以上文不對(duì)題。。。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 精品乱人伦一区二区三区 | 久久成人国产 | 国产精品乱码一二三区的特点 | 欧美精品三区 | 色综合一区二区三区 | 超级黄色一级片 | 成人精品系列 | 日韩一区二区三区在线视频 | 亚洲日本欧美日韩高观看 | 日韩欧美在线不卡 | 欧美一区不卡 | 日本 欧美 三级 高清 视频 | 综合中文字幕 | xxxxx黄色片 欧美一区免费 | 91色综合 | 在线久草| 久久国产一区二区三区 | 欧美激情精品久久久久久变态 | 91精品久久久久久久久 | 天天久久| 亚洲91精品| 一区精品在线观看 | 黄色网址在线免费播放 | 精品亚洲一区二区三区 | 国产一级一级毛片 | 天天操操 | 亚洲欧美激情精品一区二区 | 亭亭五月激情 | 操久久| 国产在线看片 | 精品国产视频 | 久久97精品 | 国产一区二区三区精品久久久 | 日本在线网址 | 亚洲免费在线视频 | 精品久久久久国产 | 在线国产视频 | av在线播放国产 | 91短视频网址 | 爱爱综合网 | 国产精品美女www |