Javascript переопределить и переопределить существующее тело функции
Мне интересно, можем ли мы еще изменить тело функции после его создания?
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(){....}
не переопределяет и не переопределяет поведение функции приветствия. Это почему ? Я знаю, что будет ошибка типа, если вы попытаетесь использовать параметр повторно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
если мы хотим расширить на него больше функций.