首页 > 代码库 > Javascript设计模式系列三
Javascript设计模式系列三
继承,一个类或对象继承另一个类或对象的三种方法。类式继承、原型式继承、掺元类。
一、类式继承,原型链、Extend函数。
<script type="text/javascript"> ////定义Person类 var Person = function (name) { this.name = name; }; Person.prototype.getName = function () { return this.name; }; ////原型链 function Author(name, books) { Person.call(this, name); this.books = books; }; Author.prototype = new Person(); Author.prototype.constructor = Author; Author.prototype.getBooks = function () { return this.books; }; var author = new Author("XX", "books") alert(author.getName()+author.getBooks()); ////Extend函数 function Extend(subClass,superClass) { var F = function () { }; F.prototype = superClass.prototype; subClass.prototype = new F(); subClass.prototype.constructor = subClass; }; function Author(name, books) { Person.call(this, name); this.books = books; } Extend(Author, Person); Author.prototype.getBooks = function () { return this.books; }; var author = new Author("X", "books") alert(author.getName() + author.getBooks()); </script>
二、原型式继承。使用原型式继承时,并不需要用类来定义对象的结构,只需直接创建一个对象即可。这个对象随后可以被新的对象重用,该对象被称为原型对象。Clone函数。
<script type="text/javascript"> ////Clone函数 function clone(object) { function F() { }; F.prototype = new object(); return new F(); }; ////定义Person类 var Person = function () { this.name = ‘default name‘; this.getName = function () { return this.name; } }; ////实例化 var Author = clone(Person); alert(Author.name); Author.name = "原型式继承"; alert(Author.name); alert(Author.getName()); </script>
三、掺元类,一个函数用到多个类中,可以使用扩充的方式让这些类共享该函数。
本文源于:Javascript设计模式。
Javascript设计模式系列三
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。