浏览 3120 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-19
/* Extend Function */ function extend(subClass,superClass){ var Func = function(){} ; Func.prototype = superClass.prototype ; subClass.prototype = new Func() ; subClass.prototype.constructor = subClass ; } ; /*-----Example-----*/ /* Class Person */ function Person(name){ this.name = name ; } ; Person.prototype.getName = function(){ return this.name ; } ; /* Class Author */ function Author(name,books){ Person.call(this,name) ; this.books = books ; } ; extend(Author,Person) ; Author.prototype.getBooks = function(){ return this.books ; } ; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-04-20
为何去掉了这一句:
subClass.superclass = superClass.prototype; 个人觉得还是有必要的,一是子类构造器里面避免显式直接引用父类,更重要的是重写父类方法。 Author.prototype.getName = function() { return 'author is ' + Author.superclass.getName(); }; |
|
返回顶楼 | |
发表时间:2011-04-30
最后修改:2011-04-30
为什么要新建一个Func, 直接像下面这样不可以吗?
subClass.prototype = new superClass() |
|
返回顶楼 | |
发表时间:2011-04-30
zhex 写道 为什么要新建一个Func, 直接像下面这样不可以吗?
subClass.prototype = new superClass() 我認為是避免觸發一次superClass |
|
返回顶楼 | |