Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript函数-全局命名空间_Javascript_Backbone.js_Javascript Namespaces - Fatal编程技术网

JavaScript函数-全局命名空间

JavaScript函数-全局命名空间,javascript,backbone.js,javascript-namespaces,Javascript,Backbone.js,Javascript Namespaces,在Javascript中,存在一个继承主干模型的函数 window.MyModel = Backbone.Model.extend({ .. .. }); window.MyCollection = Backbone.Collection.extend({ .. .. }); 在另一个JS文件中,我们访问这个函数 var MyModelInstance = new window.MyModel(); 要求是,所有函数都需要以特定的全局名称空间(例如,公司名称“Google”)作为前缀,而不是

在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 || {};
更新:好的,您需要谷歌作为名称空间,然后像这样使用它

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



googleNamespace = defineNamespace('Google');

现在可以工作了

您不需要在
窗口
前面加前缀,因为这是假定的。你可以定义

window.myNamespace = Backbone.Model.extend({ .. .. });
然后仅使用以下内容引用:

myNameSpace.....
e、 g

可通过以下方式引用:

myModule.helper.{{property/method}}

这看起来不错。但是,如果名称空间是'Google.Module1',你可能需要多写一些代码..比如先拆分它们,然后逐字检查包..它不工作。。给出错误,即“UncaughtTypeError:Object不是函数:20”。在第20行,我调用var MyModelInstance=new Google.MyModel();其抛出错误,即“UncaughtTypeError:Object不是函数:20”
myModule.helper.{{property/method}}