深入理解JavaScript中的prototype和call()的作用

来源:互联网 发布:网络基础设施建设方案 编辑:程序博客网 时间:2024/06/06 12:49

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::showMsginstance.baseShowMsg(); //显示baseClass::baseShowMsgbaseClass.showMsg.call(instance); //显示baseClass::showMsg staticvar baseinstance = new baseClass();baseinstance.showMsg();//下面这段代码,调用baseinstance.showMsg()的是instance,可以在这个方法里使用this验证baseinstance.showMsg.call(instance); //显示baseClass::showMsg


0 0
原创粉丝点击