10

私は Javascript の初心者なので、Javascript ドキュメントを読むと、従うことができない複雑な構造がたくさんあります。

以下は、私が読んでいる Javascript コードの簡単な説明です。私の場合、2 つの主要なファイルがあります:Helper.jsCircle.js.

Helper.js には、メソッド名 : がありusing:function(param1,param2)ます。以下はのコードですCircle.js

Helper.using('py.Figures', function (ns) {

    ns.Circle = function (params) {
        // some additional methods and code here
    }

    ns.Alert = function(){   // for the test purpose
           alert('hello');
    }
});

ファイル test.html には、次のようなコードを記述します。

<script src="Helper.js"></script>
<script src="circle.js"></script>
<script>
   test = function(){
        py.Figures.Alert();  // calling for testing purpose
   }
</script>
<body onload="test();"></body>

Chrome で実行してコンソールで表示すると、次のエラーが発生します。

キャッチされていない TypeError: オブジェクト # にはメソッド 'Alert' がありません

それは、まだそれらのクラスをインポートしていないことを意味します。別のファイルから関数を呼び出す方法を教えてください。私の場合は次のとおりです。Alert()

ありがとう :)

@編集:コードのリンクをいくつか追加しました:

Helper.js

Circle.js

4

2 に答える 2

11

この回答を見てみましょう

JavaScript ファイル内に JavaScript ファイルを含める

つまり、スクリプト ファイルを AJAX でロードするか、HTML にスクリプト タグを配置して (他のスクリプトの機能を使用するスクリプトの前に) 含めることができます。私が投稿したリンクは素晴らしい答えであり、両方の方法の複数の例と説明があります。

于 2012-07-31T18:56:03.693 に答える
1

はい、できます。明確にするために私のフィドルをチェックしてください。デモ目的で、コードを同じ場所でフィドルに保持しました。2 つの異なる Javascript ファイルに示されているようにそのコードを抽出し、それらを html ファイルにロードできます。

https://jsfiddle.net/mvora/mrLmkxmo/

 /******** PUT THIS CODE IN ONE JS FILE *******/

    var secondFileFuntion = function(){
        this.name = 'XYZ';
    }

    secondFileFuntion.prototype.getSurname = function(){
     return 'ABC';
    }


    var secondFileObject = new secondFileFuntion();

    /******** Till Here *******/

    /******** PUT THIS CODE IN SECOND JS FILE *******/

    function firstFileFunction(){
      var name = secondFileObject.name;
      var surname = secondFileObject.getSurname()
      alert(name);
      alert(surname );
    }

    firstFileFunction();

コンストラクター関数を使用してオブジェクトを作成し、2 番目のファイルでそのオブジェクトからプロパティまたはメソッドにアクセスしようとすると、別のファイルに存在するプロパティにアクセスできるようになります。

これらのファイルを index.html に含める順序に注意してください

于 2016-03-18T19:57:32.983 に答える