【发布时间】:2012-01-01 03:59:49
【问题描述】:
您好,我在使用对象字面量语法声明对象原型时遇到了一个问题。
我已经制作了两个小提琴来帮助你帮助我。
这是我的基类,几乎所有对象在我的应用程序中都是这样定义的:
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/>");
}
}
【问题讨论】:
-
我不明白你在做什么。 JSON 是一种文本数据格式,与对象继承无关。您可能是指 JavaScript 文字对象表示法吗?
-
这很可能就是我的意思,JavaScript 的正确术语不是我的强项。这也是为什么我没有说 JSON 而是 JSON 样式的原因。
-
@Farmor "我想用对象字面量编程"。
-
我对问题进行了一些小的修改,将术语更改为“对象文字”。还是应该是“对象文字”?我认为从现在开始应该是“对象文字”。
标签: javascript oop inheritance