js的prototype

 

代码演绎于:http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html

 

<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">

function baseClass()
{   this.name="baseClass";
    this.showMsg = function()
    {
        alert("baseClass::showMsg this.name="+this.name);   
    }
   
    this.baseShowMsg = function()
    {
        alert("baseClass::baseShowMsg");
    }
}
baseClass.showMsg = function()
{
    alert("baseClass::showMsg static");
}

function extendClass()
{   this.name="extendClass";
    this.showMsg =function ()
    {
        alert("extendClass::showMsg this.name="+this.name);
    }
}
extendClass.showMsg = function()
{
    alert("extendClass::showMsg static")
}

extendClass.prototype = new baseClass();
var instance = new extendClass();

instance.showMsg(); //显示extendClass::showMsg
instance.baseShowMsg(); //显示baseClass::baseShowMsg
instance.showMsg(); //显示extendClass::showMsg

baseClass.showMsg.call(instance);//显示baseClass::showMsg static

var baseinstance = new baseClass();

alert("baseinstance.showMsg.call(instance)")
baseinstance.showMsg.call(instance);//显示baseClass::showMsg

alert("instance.showMsg.call(baseinstance);")
instance.showMsg.call(baseinstance);//显示extendClass::showMsg this.name=baseClass
instance.showMsg();

</script>

</body>
</html>

 

其中:

instance.showMsg.call(baseinstance);//显示extendClass::showMsg this.name=baseClass
通过call,extendClass的实例instance调用的showMsg方法使用的数据来自baseinstance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值