在Javascript中,存在一个继承Backbone Model
的函数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();
答案 0 :(得分:1)
在所有文件中首先添加此行
window.googleNameSpace = googleNameSpace || {};
更新:确定您需要谷歌作为命名空间,然后像这样
function defineNamespace(str) {
window[str] = window[str] || {};
return window[str];
}
googleNamespace = defineNamespace('Google');
现在可以使用
答案 1 :(得分:0)
您不需要为window
添加前缀,因为这是假定的。你可以定义
window.myNamespace = Backbone.Model.extend({ .. .. });
然后仅使用以下内容引用它:
myNameSpace.....
e.g。
window.myModule.helpers = {
....
};
可以通过以下方式引用:
myModule.helper.{{property/method}}