2016-04-05 10 views
0
MyClass = function(params) { 
    if(params.init){ 
     params.init.call(this, this.Myobject); 
    } 
    }; 
    Myclass.prototype.Myobject = { someKeys: 'someStuff'} 

prototype.objectを使用してJavaScriptクラスを作成しました。 関数がプロトタイプをオーバーライドします

var myClass = new MyClass({ init: function (Myobject){Myobject.foo = 'bla'}}); 

と私はこれを実行します:私は、私は、このオブジェクトを編集する可能性を持っているクラスを呼び出すとき

params.init.call(this, this.Myobject); 

だから、これはプロトタイプを上書きします。 InitはmyClassインスタンスのMyobjectを書き換え、init関数を持たないインスタンスはPrototypeを使用する必要があります。

+0

「MyClass」の定義方法を教えてください。 – georg

+0

これはどういう意味ですか? (質問で編集) – TEST

+0

@TEST:いいえ、私たちは '/ *何か* /'が正確に何であるかを知る必要があります。 – Bergi

答えて

0

回答が得られなかったので、私はトレーナーに尋ねました。私の問題は非常に単純でした... 私はプロトタイプとしてmyobjectを作成しました。そう、それはいつもプロトタイプを書き換えます。私が使用したソリューションは簡単です:

私はthis.myobject = {bla:foo}

ので、今のプロトタイプのそれありえない部分が、すべてのインスタンスが、新しいこのオブジェクトを作成するとMyObjectにを作成しました。

関連する問題