我想知道一旦构造了函数体,我们还能改变它吗?
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
在这种情况下,如果我们想向它扩展更多功能,我们如何重用。