1

だから私はこの投稿を見てきました: Node.js module.exportsの目的は何ですか?それをどのように使用しますか? JavaScript オブジェクトの範囲内でそれを理解しようとしてきました。

だから私はこれを持っている場合game.js

var myObj = function() { 

    this.function1 = function(){
        ...
    };
};

exports.myObj = myObj;

他のファイルでは、次のようなことをすると想定しています。

var RequiredObj = require('game.js');

また

var RequiredObj = require('game.js').myObj;

私が迷っているのは、このオブジェクトとその関数を使用する方法と、このオブジェクトの新しいインスタンスを作成する方法です。

こんな感じでしょうか。

RequiredObj.myObj.function1();

RequiredObj.myObj = new RequiredObj.myObj();

また、渡すオブジェクトの大きさに制限はありますか? 実際のスクリプトでは、ゲーム オブジェクトが巨大だからです。

4

1 に答える 1

2

「他のファイル」が と同じディレクトリにあると仮定すると、次のgame.jsようなものが機能するはずです。

var game = require('./game.js');

var mo = new game.myObj();

mo.function1();

注意すべき点がいくつかあります。

  • プロジェクト内のモジュールは、パスで指定する必要があります。それ以外の場合は、モジュールをコア モジュールとして、またはフォルダー内でのみ検索します(たとえば、npm installを介して)。./..//requirenode_modules

  • myObjコンストラクターのように見えfunction1、インスタンス メソッドになります。したがって、RequiredObj.myObj.function1()インスタンスが作成されないため、エラーになります。

  • 一方、RequiredObj.myObj = new RequiredObj.myObj()動作するはずです... once。この行は、インスタンスへの参照を使用してコンストラクターへの参照を設定し、コンストラクターに (ほとんど) アクセスできないようにします。("ほとんど" として引き続き使用できるRequiredObj.myObj.constructorため、インスタンスの新しい変数を宣言する方が一般的に簡単です。)

また、渡すオブジェクトの大きさに制限はありますか?

ECMAScript では、 のサイズに関する明示的な制限は定義されていませんObject。ただし、もちろん、アプリケーションの実行に使用されるハードウェアによって制限されます。

于 2012-09-18T20:28:05.443 に答える