javascript的物件導向並非新鮮事務,現在簡單類比OOP實現繼承
/** * 繼承 */(function(){ //建立一個人員類 function Person(name){ this.name = name; } //建立一個Teacher類 function Teacher(name, books){ //call方法可以讓一個函數的物件內容從初始化變為由this來決定 //調用Person的建構函式,因為Person沒用new 所以是個Null 物件 //相當於java中的super函數 Person.call(this, name); this.books = books; } /** * 建立extend函數為了所有的繼承操作 */ function extend(subClass, superClass){ //叫子類原型類屬性等於父類原型類屬性 subClass.prototype = new superClass(); subClass.prototype.constructor = subClass; //為了以後能夠方便調用,也就是說在不知父類名稱的情況下,可以直接調用 //我們增加以下語句 subClass.superClass = superClass.prototype; } function Author(name,books){ //Author.superClass.constructor.call(this,name); //繼承,將name屬性的賦值方式在本類中繼承 Author.superClass.constructor.call(this,name); //Person.call(this,name); this.books = books; this.getBook = function(){ return this.name +" "+ this.books; } } extend(Author, Person); var peter = new Author("123","JAVASCIPT"); alert(peter.getBook())})();