原型
prototype
新增原型屬性
__proto__
用於修改和獲取原型屬性__proto__和prototype的區別
//原型
function
person()
person.prototype.name =
'tina'
person.prototype.age =
26person.prototype.
action
=function()
//例項化
var person1 =
newperson()
person1.__proto__.name =
'zhangting'
// 修改原型屬性
person1.age =
20//修改該例項屬性
var person2 =
newperson()
console.
log(person2.name)
// zhangting
console.
log(person1.
action()
)// zhangting
console.
log(person1.age)
// 20
console.
log(person2.age)
// 26
//檢查當前例項是否屬於某乙個原型
console.
log(person.prototype.
isprototypeof
(person1)
)//true
混合使用建構函式和原型//建構函式缺點:new多少次就會建立多少次這個建構函式,造成記憶體洩漏,效能變差
function
person
(name,age)*/}
person.prototype.
action
=function()
var person1 =
newperson
('tina',26
)var person2 =
newperson
()
繼承//繼承分 介面繼承和實現繼承,但es只支援實現繼承
/*原型*/
functiona(
)a.prototype.
like
=function()
functionb(
)b.prototype =
newa()
// b繼承原型a的所有屬性
/*例項化*/
var bb =
newb()
bb.like()
// 333
bb.__proto__.
like()
//333
擴充套件1
/*原型*/
functiona(
)a.prototype.
like
=function()
functionb(
)b.prototype =
newa()
// b繼承原型a的所有屬性
b.prototype.
like
=function()
/*例項化*/
var bb =
newb()
bb.like()
//222
bb.__proto__.
like()
//222
//ps:找例項,找原型,找父項
擴充套件2
/*原型*/
functiona(
)a.prototype.
like
=function()
functionb(
)}b.prototype =
newa()
// b繼承原型a的所有屬性
/*例項化*/
var bb =
newb()
bb.like()
//222
bb.__proto__.
like()
//333
//ps:找例項,找原型,找父項
擴充套件3
/*原型*/
functiona(
)a.prototype.
like
=function()
functionb(
)}b.prototype =
newa()
// b繼承原型a的所有屬性
/*例項化*/
var bb =
newb()
bb.like
=function()
bb.like()
//111 例項
bb.__proto__.
like()
//333 父項
//ps:找例項,找原型,找父項
原型鏈
由繼承而形成的關係鏈就叫做原型鏈
傳參
/*
在乙個物件中呼叫另乙個物件,this指的是作用域
call(this,name,age)
*/function
parent
(name, age)
parent.prototype.
getparentname
=function()
function
son(
)son.prototype =
newparent()
son.prototype.
getsonname
=function()
var ss =
newson()
console.
log(ss.name)
console.
log(ss.age)
js原型及原型鏈
在建構函式建立出來的時候,系統會預設幫建構函式建立乙個原型物件。原型物件中的屬性和方法可以被建構函式建立出來的物件訪問。建構函式.prototyoe 屬性 方法 的查詢原則 當訪問物件的成員的時候,會在自身找有沒有,如果有直接使用,如果沒有找到,則去當前物件的原型物件中找,如果找到了直接使用 如果沒...
js原型及原型鏈
每個物件都有proto屬性用於指向建立它的建構函式的原型物件。function animal name animal.prototype.getname function animal.prototype.getage function var animal1 newanimal kate var ...
js原型物件 原型鏈 繼承
原型物件 只要建立了乙個新函式,就會根據一些特定的規則為該函式建立乙個prototype屬性,這個屬性指向的物件就是該新函式的原型物件。預設情況下,所有原型物件都會自動獲取乙個constructor屬性,這個屬性是乙個指向prototype屬性所在函式的指標 原型物件的優點 可以讓所有物件例項共享它...