你好,我在使用对象字面量语法声明对象原型时遇到了继承问题。
我已经创建了两个JSFiddle来帮助您帮助我。
以下是我的基类,几乎所有对象在我的应用程序中都是这样定义的:
Base = function(param){
this.init(param);
}
Base.prototype = {
init: function(param){
this.param = param;
},
calc: function(){
var result = this.param * 10;
document.write("Result from calc in Base: " + result + "<br/>");
},
calcB: function(){
var result = this.param * 20;
document.write("Result from calcB in Base: " + result+ "<br/>");
}
}
这是我成功扩展和覆盖Base方法的方法:
Extend = function(param){
this.init(param);
}
Extend.prototype = new Base();
Extend.prototype.calc = function(){
var result = this.param * 50;
document.write("Result from calc in Extend: " + result+ "<br/>");
}
但我希望使用与应用程序的其余部分相同的样式,因此我开始尝试使用对象字面量,但是它让我感到非常疯狂,eclipse和firebug对我的语法做出了无意义的响应。
现在问题来了,如何将我的成功扩展代码转换为对象字面量风格? 以下是其中的一种尝试(它不编译,但会给您一个大致的想法,我想让代码看起来像这样)。
Extend = function(param){
this.init(param);
}
Extend.prototype = {
: new Base(),
calc: function(){
var result = this.param * 50;
document.write("Result from calc in Extend: " + result+ "<br/>");
}
}