use*_*064 7 javascript inheritance
我正在努力使用Javascript 经典继承 1.虽然道格拉斯·克罗克福德最终拒绝在Javascript中支持经典模型,但我觉得有趣的是:
我已经写了8年的JavaScript了,我从来没有发现需要使用超级函数.超级想法在经典模式中相当重要,但在原型和功能模式中似乎是不必要的.我现在看到我早期尝试在JavaScript中支持经典模型是一个错误.
然而,对于寄生遗传的问题,有一些不太明确的事情:
function ZParenizor2(value) {
var that = new Parenizor(value);
that.toString = function () {
if (this.getValue()) {
return this.uber('toString');
}
return "-0-"
};
return that;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,ZParenizor是根据Parenizor定义的.但Parenizor是基类,它继承自无人.所以this.uber函数不会被定义,实际上我在调用toString新的ZParenizor2对象的方法时会出错.
我是正确的,还是我无视某些事情?
更新
我是对的.此方法仅在您创建ZParenizor时使用0作为参数,因为它不需要调用该uber方法(正如您可以从方法imeplementation中看到的那样).
当您使用不同的参数尝试它时,我收到此错误:
Uncaught TypeError: Object #<error> has no method 'uber'
Run Code Online (Sandbox Code Playgroud)