国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javaScript命名空間的實(shí)現(xiàn)

xioqua / 297人閱讀

摘要:命名空間的實(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

相關(guān)文章

  • 【譯】JavaScript 命名空間

    摘要:前綴命名空間如果命名空間的目的是避免沖突的話。語言程序經(jīng)常使用前綴命名空間。我認(rèn)為前綴命名空間是中最清楚明白的命名空間系統(tǒng)。對(duì)象命名空間的一個(gè)問題是它會(huì)導(dǎo)致與面向?qū)ο笙鬟f混淆。嵌套命名空間的幻覺在中也存在。 原文鏈接:《JavaScript Namespacing》譯文原鏈:【譯】JavaScript 命名空間 JavaScript 中有很多可以給你的對(duì)象安全分配命名空間的方法。這...

    liujs 評(píng)論0 收藏0
  • JavaScript命名空間

    摘要:什么是命名空間命名空間英語表示標(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è)命名空間中定義,它在不同命名空間中的含義是互...

    Forelax 評(píng)論0 收藏0
  • 【譯】JavaScript命名空間

    摘要:原文鏈接譯文原鏈譯中的命名空間全局變量應(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ì)象們保留,并且它們的...

    Crazy_Coder 評(píng)論0 收藏0
  • JavaScript設(shè)計(jì)模式】單例模式

    摘要:此時(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ì)象,就必須先...

    zhaot 評(píng)論0 收藏0
  • JS進(jìn)階篇--命名空間模式解析

    摘要:示例如下可以很容易的為對(duì)象字面量定義功能可以進(jìn)一步支撐對(duì)象命名空間與為對(duì)象添加屬性一樣,我們也可以直接將屬性添加到命名空間。對(duì)象字面量方法不會(huì)污染全局命名空間,并在邏輯上協(xié)助組織代碼和參數(shù)。 簡(jiǎn)介 在SF上看到這樣一個(gè)提問:如題,因?yàn)椴坏靡训脑颍枰獙懭舾蓚€(gè)全局函數(shù)。但又不想這樣: window.a = function(){} window.b = function(){} win...

    warmcheng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<