1、繼承上下文
//人
function
person
(lastname,firstname,gender)
//作家
function
writer
(lastname,firstname,gender,worksname)
//給作家新增原型方法
writer.prototype.introduce=function
()//例項化作家蘇洵
var writer=new writer('蘇','洵','mela','六國論');
writer.introduce();/*我叫 蘇 洵
性別 mela
我的成名作是 六國論*/
2、繼承原型
關於原型、原型鏈不了解可以戳這js 原型、原型鏈、構造器關係
//人
function
person
(lastname,firstname,gender)
person.prototype=,
breathe()
}//作家
function
writer
(lastname,firstname,gender,worksname)
//原型繼承
writer.prototype=new person();
//或者writer.prototype=object.create(person.prototype);
writer.prototype.constructor=writer;
writer.prototype.introduce=function
()writer.prototype.init='老子可是筆下生花的作家呀';
var writer=new writer('蘇','洵','mela','六國論');
writer.eat()//我餓了需要吃飯
writer.breathe()//我不呼吸會死的
writer.introduce()/*我叫 蘇 洵
性別 mela
我的成名作是 六國論*/
console.log(writer.init)//"老子可是筆下生花的作家呀"
分析:writer.prototype=new person()
這句**讓write的原型成為person的乙個例項,而new person()的原型鏈(__proto__)指向person的原型(prototype),所以有
writer.prototype.__proto__===person.prototype//true
再看看此時writer的原型
返回的是person物件,但是
writer.prototype===person//
false
new person()當然不等於person
自我理解是writer繼承new person()提供的person方法和屬性後就與person脫離關係這也是為啥不直接用writer.prototype=person.prototype
到此writer的例項就可以使用person的原型方法了
分析:writer.prototype=object.create(person.prototype);
object.create(proto, [ propertiesobject ])函式建立乙個指定原型且可選擇性地包含指定屬性的物件
可以先膚淺的認為和writer.prototype=new person()
效果一樣
分析:writer.prototype.constructor=writer;
如果缺少這句就有
writer===writer.constructor
//false
writer.constructor===person//true
因為writer的原型的構造器是person,但是缺少這句並不影響繼承
之所以不影響繼承是因為例項writer繼承的方法和屬性有:
writer.__proto__===writer.prototype//true
所以writer就有了introduce方法和init屬性
3、寫在後面
純屬個人理解,有問題請不要留情
js繼承(一)原型繼承
正式開工了 繼承在js中有著很大的地位,同時理解起來也比較抽象,我將分幾篇部落格來記錄js的繼承。原型繼承 相當於將父類物件與子類物件打通橋梁,可以靈活實現追加屬性與行為 子類擁有父類的一切行為和屬性。特點 非常純粹的繼承關係,例項是子類的例項,也是父類的例項 父類新增原型方法 原型屬性,子類都能訪...
js繼承,原型鏈繼承
1 乙個型別的物件能夠訪問另外乙個型別的屬性和方法 2 類與類之間的關係 類就是眾多例項共有的屬性和方法的乙個抽象 function animal name animal.prototype.say function function dog 把子類的原型指向父類的例項 dog.prototype ...
js繼承之原型繼承
物件導向程式設計都會涉及到繼承這個概念,js中實現繼承的方式主要是通過原型鏈的方法。每建立乙個函式,該函式就會自動帶有乙個prototype屬性。該屬性是個指標,指向了乙個物件,我們稱之為原型物件。什麼是指標?指標就好比學生的學號,原型物件則是那個學生。我們通過學號找到唯一的那個學生。假設突然,指標...