//1.原型鏈繼承
var supclass = function(name, ***)
}supclass.prototype =
}/*var sonclass = function(name, ***)
console.log(sonclass.prototype)
sonclass.prototype = new supclass() //核心**
sonclass.prototype.constructor = sonclass//核心**
var son1 = new sonclass('red', 's')
son1.say()*/
//優點: 簡單,容易實現
//缺點: 多拷貝了乙份supclass的屬性過來,並且supclass的方法每生成乙個新的
// sonclass就要再重新拷貝乙份,造成了不必要的浪費
//2.建構函式繼承
/*var sonclass = function(name, ***, type)
var son1 = new sonclass('jay', 'man', 'goodman')
son1.say()*/
//優點: 簡單,容易實現,可以同時繼承多個父物件(三姓家奴)
//缺點: 只能繼承定義在父元素上的屬性或方法,而對於父元素原型物件上的屬性或方法
//則無法繼承
//3.混合繼承
/*var sonclass = function(name, ***, type)
sonclass.prototype = new supclass()
sonclass.prototype.constructor = sonclass
var son1 = new sonclass('jay', 'man', 'goodman')
son1.say()
son1.sayhi()*/
//優點: 幾乎完美
//缺點: 實現複雜,使用原型繼承的部分仍然沒有解決會多拷貝乙份父類屬性從而造成
//不必要的空間浪費的問題(可以在sonclass的prototype中看到被遮蔽的繼承自父類的屬性)
//4.寄生組合式繼承
//使用工廠函式將父元素的原型剝離出來單獨賦值給子元素的原型
function birth(f, s)
//組合式繼承
/*var sonclass = function(name, ***, type)
birth(supclass, sonclass)
var son1 = new sonclass('jay', 'man', 'goodman')
son1.say()
son1.sayhi()*/
//優點: 完美
//缺點: 實現困難
JavaScript的繼承實現方式
function a function b 測試 var testb new b alert testb.name json 2.實現繼承,方法二 prototype模式 function a function b b.prototype new a b.prototype.constructor ...
JavaScript實現繼承方式
student.prototype new person 得到乙個 person 例項,並且這個例項指向構造器的 prototype 屬性和呼叫了建構函式,因為呼叫的建構函式,而 student 只是乙個類,並沒有例項化,只為了繼承,呼叫建構函式建立乙個例項,引數的問題就不容易解決。例如 當 per...
JS實現繼承 JavaScript
定義乙個父類 定義乙個動物類 function animal name 原型方法 animal.prototype.eat function food 複製 1.原型鏈繼承核心 將父類的例項作為子類的原型 function cat cat.prototype new animal cat.proto...