你可以覆盖/覆盖函数内的函数吗? 我有一个功能,我无法更改代码。我想改变其中一种方法。我已尝试过以下内容,但它仍会提醒“父初始化”
parent = function(arg){
this.init = function(){
alert("parent init")
}
this.other = function(){
alert('i just do this')
}
// lots of other code that I would like not to have to copy paste
this.init();
}
child = function(arg){
this.init = function(){
alert("child init")
}
}
child.prototype = new parent();
child.prototype.init = function(){
alert("another child init attempt")
}
child.init = function(){
alert("another another child init attempt")
}
var x = new child();
答案 0 :(得分:0)
请参阅小提琴:http://jsfiddle.net/yXguc/
它正在向父母发出警报,因为您实际上正在创建一个新的父级:
child.prototype = new parent();
子init不会发出任何警报,因为它不会调用自己的init。如果你想要执行父的构造函数,你必须手动调用它。
var x = new child();