摘要:命名空間的實(shí)現(xiàn)在全局管理命名空間,可以把命名掛在在這個(gè)全局對(duì)象上,來實(shí)現(xiàn)命名空間的整合和通信。按照約定的命名規(guī)范,將本變量注冊(cè)到全局大型項(xiàng)目中,變量對(duì)象會(huì)出現(xiàn)多層級(jí)的結(jié)構(gòu),如一層一層注冊(cè)。
大型項(xiàng)目中-javaScript如何解決命名沖突
要解決命名沖突,即必須保證,本模塊的變量不會(huì)被其他模塊污染,為了保證命名空間的整潔,希望能夠在全局把這些變量用一種規(guī)范的方式組織起來。
命名空間的實(shí)現(xiàn)在全局管理命名空間,可以把命名掛在在window這個(gè)全局對(duì)象上,來實(shí)現(xiàn)命名空間的整合和通信。
按照約定的命名規(guī)范,將本變量注冊(cè)到全局
大型項(xiàng)目中,變量對(duì)象會(huì)出現(xiàn)多層級(jí)的結(jié)構(gòu),如:school.class.people,一層一層注冊(cè)。
實(shí)現(xiàn)var program={}; program.Namespace = { register: function(ns){ var nsParts = ns.split("."); var root = window; for (var i = 0; i < nsParts.length; i++) { if (typeof root[nsParts[i]] == "undefined") { root[nsParts[i]] = new Object(); } root = root[nsParts[i]]; } } };使用
以實(shí)例化一個(gè)對(duì)象為例
program.Namespace.register("earth.China"); earth.China.Shanghai=function () { this.init(); } earth.China.Shanghai.prototype={ constructor:earth.China.Shanghai, init:function () { console.log("this is Shanghai"); } } new earth.China.Shanghai();
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/84964.html
摘要:前綴命名空間如果命名空間的目的是避免沖突的話。語言程序經(jīng)常使用前綴命名空間。我認(rèn)為前綴命名空間是中最清楚明白的命名空間系統(tǒng)。對(duì)象命名空間的一個(gè)問題是它會(huì)導(dǎo)致與面向?qū)ο笙鬟f混淆。嵌套命名空間的幻覺在中也存在。 原文鏈接:《JavaScript Namespacing》譯文原鏈:【譯】JavaScript 命名空間 JavaScript 中有很多可以給你的對(duì)象安全分配命名空間的方法。這...
摘要:什么是命名空間命名空間英語表示標(biāo)識(shí)符的可見范圍。通用命名空間函數(shù)語言的與語法中,沒有內(nèi)置命名空間,但這種特征非常容易實(shí)現(xiàn)。添加到命名空間的屬性可能已經(jīng)存在,所以再添加屬性或者創(chuàng)建命名空間之間,我們應(yīng)該先檢查命名空間是否存在。 什么是命名空間 命名空間(英語:Namespace)表示標(biāo)識(shí)符(identifier)的可見范圍。一個(gè)標(biāo)識(shí)符可在多個(gè)命名空間中定義,它在不同命名空間中的含義是互...
摘要:原文鏈接譯文原鏈譯中的命名空間全局變量應(yīng)該由有系統(tǒng)范圍相關(guān)性的對(duì)象們保留,并且它們的命名應(yīng)該避免含糊并盡量減少命名沖突的風(fēng)險(xiǎn)。其他的考慮我希望避免命名空間嵌套。因?yàn)椴]有正式的命名空間結(jié)構(gòu),所以有很多自然形成的方法。 原文鏈接: Namespacing in JavaScript譯文原鏈: 【譯】JavaScript 中的命名空間 全局變量應(yīng)該由有系統(tǒng)范圍相關(guān)性的對(duì)象們保留,并且它們的...
摘要:此時(shí)我們創(chuàng)建的對(duì)象內(nèi)保存靜態(tài)變量通過取值器訪問,最后將這個(gè)對(duì)象作為一個(gè)單例放在全局空間里面作為靜態(tài)變量單例對(duì)象供他人使用。 單例模式 又被稱為單體模式,是只允許實(shí)例化一次的對(duì)象類。有時(shí)我們也用一個(gè)對(duì)象來規(guī)劃一個(gè)命名空間,井井有條的管理對(duì)象上面的屬性和方法。 傳統(tǒng)的面向?qū)ο笳Z言中單例模式的實(shí)現(xiàn),均是單例對(duì)象從類中創(chuàng)建而來,在以類為中心的語言中,這是很常見的做法。如果需要某個(gè)對(duì)象,就必須先...
摘要:示例如下可以很容易的為對(duì)象字面量定義功能可以進(jìn)一步支撐對(duì)象命名空間與為對(duì)象添加屬性一樣,我們也可以直接將屬性添加到命名空間。對(duì)象字面量方法不會(huì)污染全局命名空間,并在邏輯上協(xié)助組織代碼和參數(shù)。 簡(jiǎn)介 在SF上看到這樣一個(gè)提問:如題,因?yàn)椴坏靡训脑颍枰獙懭舾蓚€(gè)全局函數(shù)。但又不想這樣: window.a = function(){} window.b = function(){} win...
閱讀 3210·2021-11-17 09:33
閱讀 3295·2021-11-15 11:37
閱讀 2957·2021-10-19 11:47
閱讀 3207·2019-08-29 15:32
閱讀 1010·2019-08-29 15:27
閱讀 1534·2019-08-29 13:15
閱讀 939·2019-08-29 12:47
閱讀 2032·2019-08-29 11:30