【发布时间】:2011-03-04 20:22:13
【问题描述】:
如果我创建一个构造函数 BlahWidget 并为其提供 2 个公共方法:publicHello 和 secondHello。我使用'this'直接在小部件内部分配publicHello,但使用原型对象分配secondHello方法,这对小部件上2个方法的行为有什么影响?
var BlahWidget = function(){
this.publicHello = function(){
alert("Hello");
}
};
BlahWidget.prototype.secondHello = function(){
alert("Second Hello");
}
我的理解是使用 .prototype 允许它被继承的对象调用。但事实证明并非如此。这两种方法都可以被继承的函数对象调用,如下所示:
var MiniBlah = function(){
this.callSupers = function(){
this.publicHello();
this.secondHello();
}
}
MiniBlah.prototype = new BlahWidget();
MiniBlah.prototype.constructor = MiniBlah;
var x = new MiniBlah();
x.callSupers();//calls both publicHello and secondHello
【问题讨论】:
标签: javascript oop inheritance prototype