我一直在尝试掌握 OO JavaScript 并创建了一个简单的示例。
function BasePage(name) {
this.init(name);
}
BasePage.prototype = {
init: function(name) {
this.name = name;
},
getName: function() {
return this.name;
}
}
function FaqPage (name, faq) {
this.init(name, faq);
}
FaqPage.prototype = new BasePage();
FaqPage.prototype = {
init: function(name, faq) {
BasePage.prototype.init.call(this, name);
this.faq = faq;
},
getFaq: function() {
return this.faq;
}
}
var faqPage = new FaqPage('Faq Page', 'Faq');
var text = faqPage.getName() + ' ' + faqPage.getFaq();
$('body').text(text);
运行此结果会导致以下消息:
未捕获的类型错误:对象
#<Object>
没有方法“getName”
我想知道的是如何getName()
在超类中调用该方法而不必在子类中覆盖和调用它?
另外,如果您认为这种方法不好/好。