0

コード内:

function Foo() {
    this.someMethod = function() {
        console.log("property");
    };
}

空の Foo オブジェクトをインスタンス化し、その上で someMethod を呼び出すことは可能ですか? お気に入り:

Foo.someMethod();

TypeError が発生しました。つまり、そうではありません。

OK、次に、オブジェクトのインスタンス化時にコードを実行する PHP の __construct のようなデフォルト メソッドを定義するか、その関数の評価をオブジェクト内のプロパティ値にすることをお勧めします。関数は、新しいオブジェクトのインスタンス化時に何らかの値を設定します。

4

1 に答える 1

3

あなたのやり方は、

var fooObj = new Foo(); 
fooObj.someMethod();

うまくいきます。


次の方法で試すこともできます。

var Foo = (function(){

    function Foo() {
        // Foo constructor
    }

    Foo.prototype.someMethod = function(){
        // public Foo function
    };

    var somePrivateFunction = function(){
        // private Foo function
    };

    return Foo;

})();

var fooObj = new Foo();
于 2013-10-14T22:04:14.173 に答える