// 原型模式與建構函式組合function person(name,age,job)
person.prototype = ,
sayjob:function()
}
// 定義singer類,並指定job為singerfunction singer(name,age,song)
每次呼叫singer建構函式都會把singer的job設定為singer,並增加了乙個屬性song。
singer.prototype = new person();singer.prototype.constructor = singer;
singer.prototype.saysong = function()
第一步把singer的原型設定為person的例項物件,第二步修正constructor指向,因為singer的prototype等於person,所以它的constructor指向的person函式,第三步新增了乙個singer物件的方法。
var taylorswift = new singer('taylor swift',22,'love story');taylorswift.saysong(); //"love story"
taylorswift.sayjob(); //"singer"
JS物件導向 繼承
參考博文 一 物件導向的繼承 1 解析 在原有物件的基礎上,略作修改,得到乙個新的物件,並且不影響原有物件的功能 2 如何新增繼承 拷貝繼承 屬性 call 方法 for in 繼承 子類不影響父類,子類可以繼承父類的一些功能 復用 屬性的繼承 呼叫父類的構造1函式 call 方法的繼承 for i...
js 物件導向 繼承
繼承 將方法的定義放在建構函式中,每建立乙個新物件,都會重複建立該方法一模一樣的副本,浪費記憶體。解決 如果多個子物件都要使用乙個相同的方法時,應該把這個方法放在一種原型物件中,建構函式中不再包含方法定義。原型物件 乙個型別中,專門為所有子物件集中儲存共有方法的物件。同一型別下多個子物件需要用乙個共...
JS 物件導向 繼承
實現繼承是 ecmascript 唯一支援的繼承方式,而這主要是通過原型鏈實現的建構函式 原型和例項的關係 每個建構函式都有乙個原型物件,原型有乙個屬性 constructor 指回建構函式,而例項有乙個內部指標 prototype 指向原型。建構函式 function father console...