関数本体を作成した後でも、関数本体を変更できるのでしょうか。
var O = function(someValue){
this.hello = function(){
return "hello, " + someValue;
}
}
O.prototype.hello = function(){
return "hhhhhhh";
}
var i = new O("chris");
i.hello(); // -> this still returns the old definition "hello, chris"
javascriptステートメントO.prototype.hello = function(){....}
は、hello関数の動作をオーバーライドおよび再定義しません。何故ですか ?パラメータを再利用しようとすると、タイプエラーが発生することはわかっていますsomeValue
。
// this will fail since it can't find the parameter 'someValue'
O.prototype.hello = function(){
return "aloha, " + someValue;
}
なぜ実行時に関数を追加できるのか疑問に思っています
O.prototype.newFunction = function(){
return "this is a new function";
}
i.newFunction(); // print 'this is a new function' with no problem.
ただし、定義後に定義を変更することはできません。私は何か間違ったことをしましたか?クラス内の関数をオーバーライドして再定義するにはどうすればよいですか?以前に渡したパラメータを再利用してオブジェクトを作成する方法はありますか?someValue
この場合、より多くの機能を拡張したい場合、どのように再利用しますか。