繁体   English   中英

JavaScript函数-全局命名空间

[英]JavaScript function - Global Namespace

在Javascript中,存在一个继承主干模型的函数

window.MyModel = Backbone.Model.extend({ .. .. });
window.MyCollection = Backbone.Collection.extend({ .. .. });

在另一个JS文件中,我们以

var MyModelInstance = new window.MyModel();

要求是,所有功能都必须以特定的全局名称空间(例如公司名称“ Google”)作为前缀,而不是通用关键字“ window”。 我们如何实现呢?

我尝试了以下方法,但没有成功。

var googleNameSpace= defineNamespace("Google");

googleNameSpace.MyModel = Backbone.Model.extend({ .. .. });
googleNameSpace.MyCollection = Backbone.Collection.extend({ .. .. });



var MyModelInstance = new Google.MyModel();

在所有文件中,首先添加此行

window.googleNameSpace = googleNameSpace || {};

更新:好的,您需要使用google作为命名空间,然后像这样

function defineNamespace(str) {
    window[str] = window[str] || {};
    return window[str];
}



googleNamespace = defineNamespace('Google');

现在可以工作

您无需在window前面加上前缀,因为这是假定的。 你可以定义

window.myNamespace = Backbone.Model.extend({ .. .. });

然后仅通过以下方式引用它:

myNameSpace.....

例如

window.myModule.helpers = {
    ....
};

可以通过以下方式引用:

myModule.helper.{{property/method}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM