摘要:命名空間的實現(xiàn)在全局管理命名空間,可以把命名掛在在這個全局對象上,來實現(xiàn)命名空間的整合和通信。按照約定的命名規(guī)范,將本變量注冊到全局大型項目中,變量對象會出現(xiàn)多層級的結構,如一層一層注冊。
大型項目中-javaScript如何解決命名沖突
要解決命名沖突,即必須保證,本模塊的變量不會被其他模塊污染,為了保證命名空間的整潔,希望能夠在全局把這些變量用一種規(guī)范的方式組織起來。
命名空間的實現(xiàn)在全局管理命名空間,可以把命名掛在在window這個全局對象上,來實現(xiàn)命名空間的整合和通信。
按照約定的命名規(guī)范,將本變量注冊到全局
大型項目中,變量對象會出現(xiàn)多層級的結構,如:school.class.people,一層一層注冊。
實現(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]]; } } };使用
以實例化一個對象為例
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();
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.hztianpu.com/yun/84964.html
摘要:前綴命名空間如果命名空間的目的是避免沖突的話。語言程序經(jīng)常使用前綴命名空間。我認為前綴命名空間是中最清楚明白的命名空間系統(tǒng)。對象命名空間的一個問題是它會導致與面向對象消息傳遞混淆。嵌套命名空間的幻覺在中也存在。 原文鏈接:《JavaScript Namespacing》譯文原鏈:【譯】JavaScript 命名空間 JavaScript 中有很多可以給你的對象安全分配命名空間的方法。這...
摘要:什么是命名空間命名空間英語表示標識符的可見范圍。通用命名空間函數(shù)語言的與語法中,沒有內(nèi)置命名空間,但這種特征非常容易實現(xiàn)。添加到命名空間的屬性可能已經(jīng)存在,所以再添加屬性或者創(chuàng)建命名空間之間,我們應該先檢查命名空間是否存在。 什么是命名空間 命名空間(英語:Namespace)表示標識符(identifier)的可見范圍。一個標識符可在多個命名空間中定義,它在不同命名空間中的含義是互...
摘要:原文鏈接譯文原鏈譯中的命名空間全局變量應該由有系統(tǒng)范圍相關性的對象們保留,并且它們的命名應該避免含糊并盡量減少命名沖突的風險。其他的考慮我希望避免命名空間嵌套。因為并沒有正式的命名空間結構,所以有很多自然形成的方法。 原文鏈接: Namespacing in JavaScript譯文原鏈: 【譯】JavaScript 中的命名空間 全局變量應該由有系統(tǒng)范圍相關性的對象們保留,并且它們的...
摘要:此時我們創(chuàng)建的對象內(nèi)保存靜態(tài)變量通過取值器訪問,最后將這個對象作為一個單例放在全局空間里面作為靜態(tài)變量單例對象供他人使用。 單例模式 又被稱為單體模式,是只允許實例化一次的對象類。有時我們也用一個對象來規(guī)劃一個命名空間,井井有條的管理對象上面的屬性和方法。 傳統(tǒng)的面向對象語言中單例模式的實現(xiàn),均是單例對象從類中創(chuàng)建而來,在以類為中心的語言中,這是很常見的做法。如果需要某個對象,就必須先...
摘要:示例如下可以很容易的為對象字面量定義功能可以進一步支撐對象命名空間與為對象添加屬性一樣,我們也可以直接將屬性添加到命名空間。對象字面量方法不會污染全局命名空間,并在邏輯上協(xié)助組織代碼和參數(shù)。 簡介 在SF上看到這樣一個提問:如題,因為不得已的原因,需要寫若干個全局函數(shù)。但又不想這樣: window.a = function(){} window.b = function(){} win...
閱讀 3316·2021-11-17 09:33
閱讀 3361·2021-11-15 11:37
閱讀 3018·2021-10-19 11:47
閱讀 3257·2019-08-29 15:32
閱讀 1065·2019-08-29 15:27
閱讀 1585·2019-08-29 13:15
閱讀 991·2019-08-29 12:47
閱讀 2080·2019-08-29 11:30