javascript prototype用法(代码示例)

来源:互联网 发布:c语言是汇编语言吗 编辑:程序博客网 时间:2024/06/14 00:36

函数运行时会先去本体的函数中去找,如果找到则运行,找不到则去prototype中寻找函数。或者可以理解为prototype不会克隆同名函数。

<script type="text/javascript">function baseClass(){    this.showMsg = function()    {        alert("baseClass::showMsg");       }    this.baseShowMsg = function()    {        alert("baseClass::baseShowMsg");    }}baseClass.showMsg = function(){    alert("baseClass::showMsg static");}function 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::baseShowMsginstance.showMsg(); //显示extendClass::showMsgbaseClass.showMsg.call(instance);//显示baseClass::showMsg staticvar baseinstance = new baseClass();baseinstance.showMsg.call(instance);//显示baseClass::showMsg</script>

extendClass.prototype = new baseClass()就可以阅读为:extendClass是以baseClass的一个实例为原型克隆创建的。

使用extendClass的一个实例instance调用baseClass的对象方法showMsg: 使用call

baseinstance.showMsg.call(instance);阅读为“将instance当做baseinstance来调用,调用它的对象方法showMsg”

原创粉丝点击