DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JS繼承用法實例教程分析
JS繼承用法實例教程分析
編輯:關於JavaScript     

本文實例分析了JS繼承的用法。分享給大家供大家參考。具體分析如下:

繼承 : 子類不影響父類,子類可以繼承父類的一些功能 ( 代碼復用 )

屬性的繼承 : 調用父類的構造函數 call

方法的繼承 : for in :  拷貝繼承 (jquery也是采用拷貝繼承extend)

1. 拷貝繼承

function Person (name){
 this.name = name;
}
Person.prototype.showName =function (){
 alert(this.name);
}
function Worker(name,job){
 Person.call(this,name);
 this.job = job;
}
extend(Worker.prototype, Person.prototype);
//如果用Worker.prototype=Person.prototype的話,會造成引用相同的問題
function extend(obj1,obj2){
 for(var i in obj2){
   obj1[i] = obj2[i]
 }
}
var coder = new Worker('magicfly','frontEnd');
coder.showName();

2. 類繼承

function Person (name){
 this.name = name;
}
Person.prototype.showName =function (){
 alert(this.name);
}
function Worker(name,job){
 Person.call(this,name);
 this.job = job;
}
//Worker.prototype = new Person();
// 這樣繼承會繼承父級的不必要屬性 
function F(){};
F.prototype = Person.prototype;
Worker.prototype = new F();
//通過建立一個臨時構造函數來解決 ,也稱為代理函數

var coder = new Worker('MAGICFLY','START');
coder.showName();

3. 原型繼承

var a = {
  name : '小明'
};
var b = cloneObj(a);
b.name = '小強';
//alert( b.name );
alert( a.name );
function cloneObj(obj){
  var F = function(){};
  F.prototype = obj;
  return new F();
}

適用情況

拷貝繼承:  通用型的  有new或無new的時候都可以
類式繼承:  new構造函數
原型繼承:  無new的對象

希望本文所述對大家的javascript程序設計有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved