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.男 原型鏈中...