摘要:原則用匿名函數(shù)將腳本包起來(lái)使用多級(jí)命名空間。看這把沒有寫了吧就是這么任性,上面的那個(gè)寫了的也絕逼不改使用匿名函數(shù)通過(guò)匿名函數(shù)改變了和中的變量的作用域,使得他們都不再是全局變量了,但是在中無(wú)法訪問(wèn)在中的變量,換而言之,他們之間沒辦法通信了。
原則
用匿名函數(shù)將腳本包起來(lái);
使用多級(jí)命名空間。
這第二條“使用多級(jí)命名空間”這個(gè),我覺得并不是很完美的好主意。因?yàn)槿绻?jí)數(shù)太多的話會(huì)造成變量名字變得長(zhǎng)的一逼。
改進(jìn)過(guò)程 原始代碼沒有做過(guò)任何優(yōu)化的滿目瘡痍的代碼。a.js 和 b.js 都有全局變量 window.a ,導(dǎo)致沖突,全局變量屬于 window 作用域下的。
//a.js //b.js使用匿名函數(shù)
通過(guò)匿名函數(shù)改變了a.js 和 b.js 中的變量 a 的作用域,使得他們都不再是全局變量了,但是在 b.js 中無(wú)法訪問(wèn)在 a.js 中的變量 a, 換而言之,他們之間沒辦法通信了。
//a.js (function() { var a = 123, b = "hello world"; })(); //b.js (function() { var a, c = "abc"; })();使用全局變量進(jìn)行通信
var str; //a.js (function() { var a = 123, b = "hello world"; window.str = a; })(); //b.js (function() { var a, c = "abc"; alert(window.str); })();
使用 window.str 這種全局全局變量作為通信的媒介其實(shí)并不是一個(gè)好辦法,這樣做會(huì)導(dǎo)致全局變量越來(lái)越多,反而不好維護(hù)。
使用命名空間var GLOBAL = {}; //a.js (function() { var a = 123, b = "hello world"; GLOBAL.A.a = a; })(); //b.js (function() { var a, c = "abc"; alert(GLOBAL.A.a); })();
使用單一的全局變量 GlOBAL ,匿名空間里需要保存的屬性都在全局變量 GLOBAL 的基礎(chǔ)上使用命名空間的方式進(jìn)行拓展。這里給命名空間起名字也需要很講究,好的命名規(guī)則會(huì)對(duì)團(tuán)隊(duì)協(xié)同合作有很大的幫助。具體的命名方式待我賣個(gè)關(guān)子,以后再說(shuō)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/85906.html
摘要:不在任何函數(shù)內(nèi)聲明的變量為全局變量。加變成一個(gè)函數(shù)表達(dá)式,解釋器運(yùn)行創(chuàng)建一個(gè)匿名的函數(shù)表達(dá)式閉包終于到閉包了。 函數(shù)的實(shí)參和形參 可選形參 if(a === undefined) a = []; 等價(jià)于 a = a || []; 這兩句是完全等價(jià)的,只不過(guò)后者需要提前聲明a而已如果參數(shù)沒有傳入,其余的填充undefined可選的形式參數(shù):通過(guò)注釋/optional/來(lái)強(qiáng)調(diào)參數(shù)可選,并且...
摘要:目前來(lái)看,團(tuán)隊(duì)內(nèi)部前端項(xiàng)目已全面實(shí)施組件化開發(fā)。層疊樣式保佑不要污染別的在前端,一般一個(gè)組件必須要有骨架和裝飾的以及邏輯。事件綁定條件判斷秒后改變,會(huì)自動(dòng)變更。循環(huán)姓名年齡增加修改移除的變更也能監(jiān)聽到,能夠自動(dòng)觸發(fā)的變更。 目前來(lái)看,團(tuán)隊(duì)內(nèi)部前端項(xiàng)目已全面實(shí)施組件化開發(fā)。組件化的好處太多,如:按需加載、可復(fù)用、易維護(hù)、可擴(kuò)展、少挖坑、不改組件代碼直接切成服務(wù)器端渲染(如Nuclear組...
摘要:沒有聲明的情況和都能夠聲明塊級(jí)作用域,用法和是類似的,的特點(diǎn)是不會(huì)變量提升,而是被鎖在當(dāng)前塊中。聲明常量,一旦聲明,不可更改,而且常量必須初始化賦值。臨時(shí)死區(qū)的意思是在當(dāng)前作用域的塊內(nèi),在聲明變量前的區(qū)域叫做臨時(shí)死區(qū)。 本章涉及3個(gè)知識(shí)點(diǎn),var、let、const,現(xiàn)在讓我們了解3個(gè)關(guān)鍵字的特性和使用方法。 var JavaScript中,我們通常說(shuō)的作用域是函數(shù)作用域,使用var聲...
閱讀 3589·2019-08-30 15:55
閱讀 1385·2019-08-29 16:20
閱讀 3668·2019-08-29 12:42
閱讀 2674·2019-08-26 10:35
閱讀 1023·2019-08-26 10:23
閱讀 3420·2019-08-23 18:32
閱讀 909·2019-08-23 18:32
閱讀 2904·2019-08-23 14:55