亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

深入淺析javascript函數(shù)中with

 更新時(shí)間:2018年10月28日 09:41:31   作者:illusory_f  
這篇文章主要介紹了javascript函數(shù)中with,with函數(shù)方便用來引用某個(gè)對象中已有的屬性,但是不能用來給對象添加屬性,要給對象創(chuàng)建新的屬性,下面通過代碼給大家講解,需要的朋友可以參考下

/*js函數(shù)中with函數(shù)的用法分析

定義 方便用來引用某個(gè)對象中已有的屬性

但是不能用來給對象添加屬性 要給對象創(chuàng)建

新的屬性 必須明確的引用該對象*/

代碼格式

with(object)
 statements

 object:新的默認(rèn)對象

statements:一個(gè)或多個(gè)語句 oject是該語句的默認(rèn)對象

with 語句通常用來縮短特定情形下必須寫的代碼量。

x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10) y = Math.tan(14 * Math.E)
 with (Math){ x = cos(3 * PI) + sin (LN10) y = tan(14 * E)}
 function valiadate_reauired

簡單的來說就是with相當(dāng)于一種速寫方式 在指定的代碼區(qū)域,通過節(jié)點(diǎn)名稱就能調(diào)用對象

 普通寫法:

var car={
 size: suv,
 color:yellow,
 money:1500
 };

其他類調(diào)用

function={
 car car =new car();
 car.size=suv;
 car.color=yellow;
 car.money=1500;
 }

使用with的寫法:省去了car.

 with(car){
size=suv;
 color=yellow;
 money=1500; 
 } 

使用with語句關(guān)聯(lián)了car對象,解析時(shí) with代碼塊的內(nèi)部把每個(gè)變量都認(rèn)為是局部變量;

如果局部變量里與car對象屬性(例如size)屬性同名,這個(gè)局部變量就會指向car里面的屬性;

 缺點(diǎn)1

 with會自動(dòng)在全局作用域創(chuàng)建一個(gè)全局變量,在嚴(yán)格模式下,會拋出ReferenceError 異常。

withwith 會在運(yùn)行時(shí)修改或創(chuàng)建新的作用域,以此來欺騙其他在書寫時(shí)定義的詞法作用域。

 缺點(diǎn)2

 with在相同條件下比不使用它慢了很多,具體的原因是因?yàn)閖s在運(yùn)行之前要進(jìn)行預(yù)編譯,其中有些優(yōu)化依賴于能夠根據(jù)代碼的詞法進(jìn)行靜態(tài)分析,并預(yù)先確定所有變量和函數(shù)的定義位置,才能在執(zhí)行過程中快速找到標(biāo)識符。 

但如果引擎在代碼中發(fā)現(xiàn)了 with,它只能簡單地假設(shè)關(guān)于標(biāo)識符位置的判斷都是無效的,因?yàn)闊o法知道傳遞給 with 用來創(chuàng)建新詞法作用域的對象的內(nèi)容到底是什么。所以js就不會優(yōu)化

 總結(jié)

以上所述是小編給大家介紹的javascript函數(shù)中with,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時(shí)回復(fù)大家的!

相關(guān)文章

最新評論