1.js中的物件導向就是類,而類中關鍵的就是繼承
2.首先宣告乙個類
var gandparent = function()
3.建構函式實現繼承
function grandparent ()
grandparent.prototype.say=function()
function son()
console.log(new son().name)
console.log(new son().say())
缺點: 通過建構函式實現繼承,只能實現部分繼承,原型物件上的屬性不能被繼承
4.原型鏈繼承
function person()
person.prototype.say=function()
function man()
man.prototype = new person()
let a = new man()
let b = new man()
a.friend.push('sb')
雖然可以實現繼承,但是new出來的兩個例項,其中乙個屬性變了,另乙個也會改變。因為他們是繼承的同乙個建構函式。
5.以上兩種方式組合起來
function person()
person.prototype.say=function()
function man()
man.prototype = new person()
let a = new man()
let b = new man()
a.friend.push('sb')
以上兩種繼承結合可以達到效果,但是每次例項化的時候,都要重複去例項化建構函式
6.優化(繼承原型)
function person()
person.prototype.say=function()
function man()
man.prototype = person.prototype
let a = new man()
let b = new man()
a.friend.push('sb')
可以達到相同的效果
7.object.create(object.create()方法是ecmascript 5中新增的方法,這個方法用於建立乙個新物件。被建立的物件繼承另乙個物件的原型,在建立新物件時可以指定一些屬性。)
function person()
person.prototype.say=function()
function man()
// man.prototype = person.prototype
man.prototype = object.create(person.prototype)
let a = new man()
let b = new man()
a.friend.push('sb')
同樣可以達到效果
JS中的物件導向
一 首先建立js物件的四種方式 1.普通模式 var person new object person.name irving person.age 22 person.sayhi function 但是這樣每次去建立乙個類的物件相當的麻煩。所以有了下面的集中建立物件的模式。2.工廠模式 funct...
js中的物件導向
很火的一張圖很生動形象 mdn 給了我們一堆術語 請嘗試理解物件導向,並背誦 mdn 裡的以下內容 class 類 定義物件的特徵。它是物件的屬性和方法的模板定義.object 物件 類的乙個例項。property 屬性 物件的特徵,比如顏色。method 方法 物件的能力,比如行走。constru...
js中物件導向的繼承
參考 繼承 缺點 修改子類dog.prototype的同時也影響到了父類的animal.prototype 物件導向的拷貝繼承 上面 只是用了淺拷貝實現了物件的繼承,jquery中就是利用了拷貝繼承。function extend c,p if typeof p object else if win...