读书人

JavaScript 面向对象程序设计(上)

发布时间: 2012-11-23 00:03:43 作者: rapoo

JavaScript 面向对象程序设计(下)——继承与多态

转自:CoolCode.CN

前面我们讨论了如何在 JavaScript 语言中实现对私有实例成员、公有实例成员、私有静态成员、公有静态成员和静态类的封装。这次我们来讨论一下面向对象程序设计中的另外两个要素:继承与多态。

1 又是几个基本概念

为什么要说又呢? JavaScript 面向对象程序设计(上)——继承与多态

  • function parentClass() { this.method = function(){ alert("parentClass method"); } } functionsubClass() { varmethod = this.method; this.method = function(){ method.call(this); alert("subClass method"); } } subClass.prototype = newparentClass(); subClass.prototype.constructor = subClass; varo = new subClass(); o.method();

    你会发现,原来这么简单,只要在定义覆盖方法前,定义一个私有变量,然后把父类中定义的将要被覆盖的方法赋给它,然后我们就可以在后面继续调用它了,而且这个是这个方法是私有的,对于子类的对象是不可见的。这样跟其它高级语言实现的覆盖就一致了。

    最后需要注意,我们在覆盖方法中调用这个方法时,需要用 call 方法来改变执行上下文为 this(虽然在这个例子中没有必要),如果直接调用这个方法,执行上下文就会变成全局对象了。

  • 读书人网 >JavaScript

    热点推荐