[英]How to use a JavaScript method/object that has been defined in another file?
我有一些结构复杂的JavaScript。 因为我是JavaScript的新手(仅了解一些基本概念),所以我不知道如何正确使用它。
我有两个文件:Circle.js和Line.js。 在Circle.js中,我想使用Line.js中定义的类对象:
在文件Circle.js中:
Helper.using('py.Figures', function (ns) {
ns.Circle = function (params) {
// some additional methods and code here
}
}
在Line.js中是:
Helper.using('py.Figures', function (ns) {
ns.Line2Point = function (params) {
// some addition methods and code here
};
}
在Figures.Circle中,在ns.Circle中,我想使用Line2Point,但我不知道如何。 我认为应该是:
line = new ns.Line2Point(params);
但这似乎行不通。
根据Helper Class
, ns
将指向helper.using
,在本例中为py.Figures
。 这是否意味着ns
在两个文件中都是相同的对象/引用?
我认为这在直接跨文件的Javascript中是可行的。 如果它们是同一名称空间的一部分,则可以共享一些“全局”对象来实现这一点,将line2points和circle附加到该全局对象上:
例如:
var myShapesNameSpace = {};
Circle.js:
(function(){
var circle = {};
circle.method1 = function(){...}
circle.method2 = function(){...}
myShapesNameSpace.Circles = circle;
})(window.myShapesNameSpace = window.myShapesNameSpace || {}); //check if namespace object exists. Else create a new blank one.
Line.js:
(function(){
var line= {};
line.method1 = function(){...}
line.method2 = function(){...}
myShapesNameSpace.Lines= line;
})(window.myShapesNameSpace = window.myShapesNameSpace || {});
现在,您可以检查是否存在myShapesNameSpace.Circles
或.Lines
并相应地调用相应的方法。
您可以将文件包含在javascript中,并且可以跨文件引用对象,除非它们通过窗口或定义全局以某种全局形式导出
欢迎使用Javascript,这是粪便。 Require.js正是为此而设计的,因为JS的创建者很好,我想是每个人都会在一个文件中编写每个程序。
它专为Web使用而设计,但也可以在其他地方使用(在本地,与Node等一起使用)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.