? ?js是一個面向對象的語言,所以具備一些面向對象的方式----------例如繼承。接下來介紹5種js的繼承方式.注意:js 中的函數其實是對象,函數名是對 Function 對象的引用。
1.采用call方法改變函數上下文實現繼承,原理是改變函數內部的函數上下文this,使它指向傳入函數的具體對象
? ? 具體代碼如下
? ?
???Father.call(child,child.getName) 的意思就是使用 Father對象代替child對象,child中就有?Father的所有屬性和方法了,child對象就能夠直接調用?Father的方法以及屬性了.
2.采用apply方法改變函數上下文實現繼承,原理是改變函數內部的函數上下文this,使它指向傳入函數的具體對象
3.采用原型鏈的方式實現繼承,實現原理是:使子類原型對象指向父類的實例以實現繼承,即重寫類的原型
?
這樣子類就具有了父類的屬性和方法,完美繼承
4.使用對象冒充實現繼承(該種實現方式可以實現多繼承)實現原理:讓父類的構造函數成為子類的方法,然后調用該子類的方法,通過this關鍵字給所有的屬性和方法賦值
?? ? ? ?
? ? 子類具有的方法和屬性有?? 可以看出子類繼承了父類的方法和屬性
?
?
5.采用混合模式實現繼承 ?
?