0

複雑な構造を持つ JavaScript があります。私は JavaScript の初心者 (いくつかの基本的な概念しか理解していない) であるため、正しく使用する方法がわかりません。

Circle.js と Line.js の 2 つのファイルがあります。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.usingpy.Figuresns

4

2 に答える 2

0

たわごとの部分である Javascript へようこそ。Require.js はまさにこの目的のために設計されました。JS の作成者は、まあ、誰もがすべてのプログラムを 1 つのファイルに記述するだろうと考えていたからです。

RequireJS

これは Web 用に設計されていますが、他の場所でも使用できます (ローカル、Node など)。

于 2012-07-29T20:14:47.557 に答える
0

これは、ファイル間で直接 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これで、 orの存在を確認し、.Linesそれに応じて対応するメソッドを呼び出すことができます。

ファイルがウィンドウまたはグローバル定義を介して何らかのグローバル形式でエクスポートされない限り、JavaScript にファイルを含め、ファイル間でオブジェクトを参照することができます。

于 2012-07-29T18:03:21.780 に答える