http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html
以上是作者原文,我对上面最后一段代码做了修改,应该变得更容易让新手理解其含义
function baseClass() {
this.className = "baseClass";
this.showMsg = function () {
alert("baseClass::showMsg");
alert("Class name is:"+this.className);
}
this.baseShowMsg = function () {
alert("baseClass::baseShowMsg");
}
}
baseClass.showMsg = function () {
alert("baseClass::showMsg static");
}
function extendClass() {
this.className = "extendClass";
this.showMsg = function () {
alert("extendClass::showMsg");
}
}
extendClass.showMsg = function () {
alert("extendClass::showMsg static")
}
extendClass.prototype = new baseClass();
var instance = new extendClass();
instance.showMsg(); //显示extendClass::showMsg
instance.baseShowMsg(); //显示baseClass::baseShowMsg
baseClass.showMsg.call(instance); //显示baseClass::showMsg static
var baseinstance = new baseClass();
baseinstance.showMsg();
//下面这段代码,调用baseinstance.showMsg()的是instance,可以在这个方法里使用this验证
baseinstance.showMsg.call(instance); //显示baseClass::showMsg