0

我有一些结构复杂的 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 Classns会指helper.using,在这种情况下py.Figures。这是否意味着,ns两个文件中的对象/引用是否相同?

4

2 回答 2

0

我不认为这在 Javascript 中直接跨文件是可行的。如果它们是同一命名空间的一部分,您可以共享一些“全局”对象来实现这一点,将 line2points 和 circles 附加到该全局对象:

前任:

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.Circlesor的存在.Lines并相应地调用相应的方法。

您可以在 javascript 中包含文件并跨文件引用对象,除非它们通过窗口或您定义的全局以某种全局形式导出

于 2012-07-29T18:03:21.780 回答
0

欢迎来到 Javascript,该死的部分。Require.js 正是为此而设计的,因为 JS 的创建者,嗯,我猜想每个人都会将每个程序都写在一个文件中。

要求JS

它是为 Web 使用而设计的,但也可以在其他地方使用(本地、使用 Node 等)

于 2012-07-29T20:14:47.557 回答