4.03 - the extend function.js

来自「JS设计模式源代码」· JavaScript 代码 · 共 66 行

JS
66
字号
/* Extend function. */function extend(subClass, superClass) {  var F = function() {};  F.prototype = superClass.prototype;  subClass.prototype = new F();  subClass.prototype.constructor = subClass;}/* 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;};/* Extend function, improved. */function extend(subClass, superClass) {  var F = function() {};  F.prototype = superClass.prototype;  subClass.prototype = new F();  subClass.prototype.constructor = subClass;  subClass.superclass = superClass.prototype;  if(superClass.prototype.constructor == Object.prototype.constructor) {    superClass.prototype.constructor = superClass;  }}/* Class Author. */function Author(name, books) {  Author.superclass.constructor.call(this, name);  this.books = books;}extend(Author, Person);Author.prototype.getBooks = function() {  return this.books;};Author.prototype.getName = function() {  var name = Author.superclass.getName.call(this);  return name + ', Author of ' + this.getBooks().join(', ');};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?