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

首頁 > 編程 > JavaScript > 正文

深入淺析javascript函數中with

2019-11-19 12:37:35
字體:
來源:轉載
供稿:網友

/*js函數中with函數的用法分析

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

但是不能用來給對象添加屬性 要給對象創建

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

代碼格式

with(object) statements

 object:新的默認對象

statements:一個或多個語句 oject是該語句的默認對象

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相當于一種速寫方式 在指定的代碼區域,通過節點名稱就能調用對象

 普通寫法:

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

其他類調用

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語句關聯了car對象,解析時 with代碼塊的內部把每個變量都認為是局部變量;

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

 缺點1

 with會自動在全局作用域創建一個全局變量,在嚴格模式下,會拋出ReferenceError 異常。

withwith 會在運行時修改或創建新的作用域,以此來欺騙其他在書寫時定義的詞法作用域。

 缺點2

 with在相同條件下比不使用它慢了很多,具體的原因是因為js在運行之前要進行預編譯,其中有些優化依賴于能夠根據代碼的詞法進行靜態分析,并預先確定所有變量和函數的定義位置,才能在執行過程中快速找到標識符。 

但如果引擎在代碼中發現了 with,它只能簡單地假設關于標識符位置的判斷都是無效的,因為無法知道傳遞給 with 用來創建新詞法作用域的對象的內容到底是什么。所以js就不會優化

 總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜南县| 亳州市| 赤水市| 工布江达县| 凤山市| 绥阳县| 灌阳县| 偃师市| 边坝县| 鸡东县| 苏尼特右旗| 广饶县| 青浦区| 独山县| 遵义市| 马鞍山市| 寻甸| 雅安市| 铜鼓县| 延吉市| 秀山| 广河县| 西昌市| 普兰店市| 且末县| 东阳市| 河池市| 佛教| 崇阳县| 广州市| 吴旗县| 礼泉县| 紫阳县| 松滋市| 滕州市| 偏关县| 公安县| 大化| 芦溪县| 曲水县| 德化县|