我有这个:
function Book (){
this.width = 7;
this.height = 10;
var pages = 100;
this.tear_page = function(){
return --pages;
}
}
function TechBook () {
var pages = 50;
this.open_book = function(){ return "Opened in page "+(pages/2); };
return this;
}
var bBook = Object.create(new Book(), new TechBook());
console.log(bBook);
console.log(bBook.tear_page());
console.log(bBook.open_book());
我无法让它正常工作。我已经成功让TechBook从Book继承了访问本地/私有变量的权限,但只能从Book函数中访问。如果我添加新方法或覆盖它们,它们就无法再访问那些变量了。我想知道是否有一种方法可以仍然从子类的方法中访问这些变量,并在子类中创建新的私有变量。
如果这不可能,那就意味着如果你想要继承,就不能拥有私有变量,反之亦然。顺便说一句,我知道chrome现在(多亏了ES6)可以自然地实现类:class TechBook extends Book(){},像许多其他语言一样,但是由于支持限制目前仅适用于最新版本的chrome...我想知道是否有其他解决此问题的方法。
bBook = Object.create(new Book(), new TechBook())
代码完全混乱了。请参见这里正确地进行继承(然后使用bBook = new TechBook();
进行实例化)。 - Bergi