成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Javascript中的eval與with

開發 前端
Javascript的作用域是詞法作用域(lexical scope or static scope),也就是說作用域鏈在定義的時候就確定了。也提到eval、with會擾亂作用域鏈(dynamic scope)。

javascript的作用域是詞法作用域(lexical scope or static scope),也就是說作用域鏈在定義的時候就確定了。也提到eval、with會擾亂作用域鏈(dynamic scope)。

eval

IE下:運行eval()會受當前作用域限制,運行execScript()則無視當前作用域,直接在全局作用域下執行。

Firefox下:eval()和window.eval()效果不一樣,這很奇怪,畢竟FF下,eval==window.eval。前者會受當前作用域限制,后者無視當前作用域,在全局作用域下執行(相當于IE的execScript())。

有人寫了一篇比較通俗的,參考這篇文章

with

with會暫時修改作用域鏈。

<script>
function a(){
    with (b) {
        ...
    }
}a();
</script>

函數a在定義的時候,就確定了a的作用域鏈,我們姑且認為這條鏈的最頂端是全局對象window。

當函數a被執行的時候,javascript引擎生成了一個call object并將其添加到作用域鏈尾部上(window對象之后),語句運行到with(b)時,將b添加到作用域鏈的尾部,所以with之內的變量查找,就會優先從這條鏈的b上查找---> 然后從a的call object中查找---> ***查找window。with內的語句執行完之后,作用域鏈恢復原狀(b被移出作用域鏈)。

以上就是例子代碼運行時的微觀世界。

with是不被推薦的,因為他操作作用域鏈(移進、移出,多累),執行效率低下。

有些人可能認為with能節省代碼量,比如

with(document.forms[0]){
    name.value='';
    address.value='';
    email.value='';
}

就能少寫不少document.forms[0],
其實定義一個局部變量取代with中的b也可以達到同樣目的,效率也無損失。

var c=document.forms[0];
    c.name.value='';
    c.address.value='';
    c.email.value='';

【編輯推薦】

  1. Javascript中的replace方法與正則表達式講解
  2. 詳解Javascript trim()函數實現
  3. 應用最廣的十大Javascript框架
責任編輯:彭凡 來源: kaima.cnblogs.com
相關推薦

2009-07-31 13:48:34

C# eval()函數

2017-08-28 15:21:29

異步處理回調函數異步編程

2021-07-16 07:57:35

JavaScriptEval函數

2024-09-03 13:32:11

JavaScriptEval函數

2024-07-11 14:05:28

JavaScript函數

2017-08-22 16:40:22

前端JavaScript接口

2009-06-10 22:06:29

JavaScript面向對象

2015-05-18 13:51:08

2013-03-26 10:27:01

JavaScriptjson

2011-07-14 10:58:26

JavaScript強制類型轉換函數

2020-12-07 06:38:32

JavaScriptEval 函數

2014-07-24 10:00:21

2009-04-21 09:37:50

ASP.NETAjaxJavaScript

2009-06-18 12:21:07

javascriptdom

2009-06-24 10:49:16

JavaScript

2015-05-06 10:02:26

2015-12-02 11:06:20

2016-09-18 20:53:16

JavaScript閉包前端

2009-06-24 15:00:39

Javascript代

2011-09-26 10:50:16

JavaScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩亚洲视频 | 国产精品欧美精品日韩精品 | 国产污视频在线 | 蜜桃av一区二区三区 | 国产精品久久久久久久久久 | 91久久精品一区二区二区 | 亚洲色片网站 | 国产精品日韩欧美 | 免费看国产一级特黄aaaa大片 | 亚洲h色| 99九九久久 | www国产亚洲精品 | 99精品视频免费在线观看 | 国产在线视频一区 | 日本三级全黄三级三级三级口周 | 亚洲国产成人一区二区 | 久久久久国产精品一区二区 | 国产一级免费视频 | 天天干天天爽 | 成人在线视频网站 | 国产午夜精品一区二区三区嫩草 | 中文精品视频 | 亚洲免费视频一区 | 日本免费在线观看视频 | 色吧色综合 | 九九精品在线 | 国产一区二区欧美 | 欧美日韩电影在线 | 无码国模国产在线观看 | 亚洲一区二区三区四区av | 本地毛片| 日本 欧美 国产 | 亚洲成人免费网址 | av资源中文在线天堂 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 中文字幕日韩欧美一区二区三区 | 亚洲国产精品一区二区三区 | 亚洲天堂精品一区 | 三区在线| 精品国产一区久久 | 国产精品1区 |