我在 jsFiddle 中有一些代码:http: //jsfiddle.net/xyuY6/
和代码:
var App= {};
App.WebPage = {
WebPage : function(name) {
alert("In Super");
this.name = name;
},
Home : function(name) {
alert("In Sub");
App.WebPage.WebPage.call(this, name);
}
};
App.WebPage.WebPage.prototype.sayName = function() {
alert(this.name);
};
inherit(App.WebPage.WebPage, App.WebPage.Home);
var x = new App.WebPage.Home("zack");
x.sayName();
function inherit(subType, superType) {
alert("IN HERE");
var p = Object.create(superType);
p.constructor = subType;
subType.prototype = p;
}
我想要做的是App
在这个命名空间中创建一个包含两个构造函数的命名空间,WebPage
并且Home
. WebPage
是“超类型”并且Home
是“子类型”。Home 应该继承 WebPage 的所有内容。
但是,正如您在运行 JavaScript 时会看到的那样,问题是 WebPage 原型上定义的 sayName 函数在我这样做时没有被调用x.sayName
。因此,它不会被继承。
为什么?
谢谢您的帮助!!!