Javascript redefinir e substituir o corpo da função existente
Eu estou querendo saber ainda podemos mudar o corpo da função, uma vez que é construído?
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"
A declaração javascriptO.prototype.hello = function(){....}
não sobrescreve e redefine o comportamento da função hello. Por que é que ? Eu sei que vai ter um erro de tipo se você tentou reutilizar o parâmetrosomeValue
.
// this will fail since it can't find the parameter 'someValue'
O.prototype.hello = function(){
return "aloha, " + someValue;
}
Eu estou querendo saber porque permite adicionar a função durante o tempo de execução como
O.prototype.newFunction = function(){
return "this is a new function";
}
i.newFunction(); // print 'this is a new function' with no problem.
mas não permite alterar a definição depois de definida. Fiz algo de errado ? Como podemos substituir e redefinir uma função dentro de uma classe? e existe uma maneira de reutilizar o parâmetro que passamos anteriormente para criar o objeto? Neste caso, como podemos reutilizarsomeValue
se queremos estender mais funções para isso.