2017-11-07 9 views
0
a = function(x){ 

this.c = x; 

this.c(); 

} 

a.prototype.b = function() { 

alert("B"); 

} 

a.prototype.c = function() { 

//overwrite this 

} 

var z = new a(this.b); 

this.bの使用は間違っていますが、とにかくオブジェクトメソッドを参照してオブジェクトのインスタンス化時に引数として渡すことができますか?リファレンスオブジェクトをインスタンス化するときのJavascriptオブジェクトメソッド

オブジェクトインスタンスはまだ存在しませんが、プロトタイプではわかります。

私は文章を貼り付けることができませんが、それはあまりにも複雑すぎます。私は恐れています。基本的には、いくつかの機会にprototype.bを上書きし、それ以降のインスタンス化の時点でそれを行いたいのです。主にきれいなコードです。しかし、心配する必要はありません。

+0

注あなた 'VAR zは=新しい(this.b)'のいずれかであるグローバル 'オブジェクトまたは' undefined'、a.prototype 'で置き換えるwindow'で' this'ことなぜこれをやりたがっているのかは分かりませんが。ここで実際に何を達成しようとしていますか? –

答えて

1

コンストラクタから参照する必要があります。

a = function(x) { 
 
    this.c = x; 
 
    this.c(); 
 
} 
 

 
a.prototype.b = function() { 
 
    alert("B"); 
 
} 
 

 
var z = new a(a.prototype.b);

または多分要求されたメソッドの名前を送信するよりよい、およびコンストラクタはそれを行う必要があります。

a = function(x) { 
 
    if (x in a.prototype) { 
 
    this.c = a.prototype[x]; 
 
    this.c(); 
 
    } 
 
} 
 

 
a.prototype.b = function() { 
 
    alert("B"); 
 
} 
 

 
var z = new a("b");

+0

aはその時点では存在しません – user1209203

+0

'a'がまだ存在しない場合、どのように呼び出していますか? –

+0

申し訳ありませんが、私はあなたのテストが間違っています、ありがとうございます。 – user1209203

関連する問題