es5中的類 原型鏈 靜態方法 繼承

2021-09-19 23:31:17 字數 1768 閱讀 2837

function person(name,age) -----$`)

}}// 原型鏈上面的屬性和方法

// 原型鏈上繫結的屬性和方法和建構函式中的有什麼區別:原型鏈上的屬性和方法可以被多個例項共享

person.prototype.***='男'

person.prototype.work=function()---------$--------$`)

}// 靜態方法

person.setname=function()

var p=new person('zhangsan','20') // 例項方法通過例項化來呼叫的,靜態方法是通過類名直接呼叫

p.run()

p.work()

person.setname() // 執行靜態方法

其中

1、原型鏈上繫結的屬性和方法和建構函式中屬性和方法的區別:原型鏈上的屬性和方法可以被多個例項共享

2、建構函式中的方法通過例項物件呼叫,靜態方法通過類名直接呼叫。

1、物件冒充實現繼承

function person(name,age)--$`)

}}person.prototype.work=function()

function web(name,age)

var w=new web('李四',18)

w.run()

// w.work() w.work is not a function

// 物件冒充繼承:繼承不了原型鏈上面的屬性和方法

物件冒充繼承的缺點:繼承不了原型鏈上面的屬性和方法

2、原型鏈繼承

function person(name,age)--$`)

}}person.prototype.work=function()

function web(name,age)

web.prototype=new person() // 原型鏈繼承person

var w=new web('李四',18)

w.run()

w.work()

// 原型鏈繼承:可以繼承建構函式及原型鏈上的屬性和方法。但例項化子類的時候沒法給父類傳參

// 上面的w.run()執行後,列印出來的是: undefined--undefined

原型鏈繼承:可以繼承建構函式及原型鏈上的屬性和方法。缺點:但例項化子類的時候沒法給父類傳參

3、最好的方式:物件冒充結合原型鏈繼承

function person(name,age)--$`)

}}person.prototype.work=function()

function web(name,age)

web.prototype=new person() // 原型鏈繼承

var w=new web('李四',18)

w.run()

w.work()

// 物件冒充結合原型鏈實現繼承:既可以實現繼承原型鏈中的屬性和方法,例項化時也能夠給父類傳參

物件冒充結合原型鏈實現繼承:既可以實現繼承原型鏈中的屬性和方法,例項化時也能夠給父類傳參

es5中的類和靜態方法

es5中的類和靜態方法 function person name,age 原型鏈上面的屬性和方法可以被多個例項共享 person.prototype.男 person.prototype.sayhello function 靜態方法 person.address function var p new...

es5裡面的繼承 原型鏈實現繼承

物件冒充的方式實現繼承function person person.getinfo function web類 繼承person類 原型鏈 物件冒充的組合繼承模式 function web var w newweb 例項化w web繼承person的屬性與方法 w.run w.work 報錯 物件繼...

ES5中類與類的繼承

1 es5中最簡單的類 function person var p new person 建立類 alert p.name 網頁顯示 es5中的建構函式和原型鏈裡面增加方法 function person 原型鏈上面的屬性會被多個例項共享 建構函式不會 person.prototype.男 原型鏈中...