原型鏈:只要是對象就有原型,并且原型也是對象揪垄,因此只要定義了一個對象穷吮,那么就可以找到它的原型,如此反復(fù)饥努,就可以構(gòu)成一個對象的序列捡鱼,這個結(jié)構(gòu)就被稱為原型鏈
原型:_proto_隱式原型? ? prototype顯式原型
總結(jié):1、對象有屬性_proto_酷愧,指向該對象的構(gòu)造函數(shù)的原型對象
? ? ? ? ? 2驾诈、方法除了有屬性_proto_,還有屬性prototype,prototype指向該方法的原型對象
重點(diǎn)1:在JS里伟墙,萬物皆對象翘鸭。方法(Function)是對象,方法的原型(Function.prototype)是對象戳葵。因此就乓,它們都具有對象共有的特點(diǎn)。即:對象都具有屬性_proto_,可稱為隱式原型拱烁,一個對象的隱式原型指向構(gòu)造該對象的構(gòu)造函數(shù)的原型生蚁,這也保證了實(shí)例能夠訪問在構(gòu)造函數(shù)原型中定義的屬性和方法。
重點(diǎn)2:方法(Function)這個特殊的對象戏自,除了和其他對象一樣有上述_proto_屬性外邦投,還有自己特有的屬性——原型屬性(prototype),這個屬性就是一個指針擅笔,指向一個對象志衣,這個對象的用途就是包含所有實(shí)例共享的屬性和方法(我們把這個對象叫做原型對象)屯援。原型對象也有一個屬性,叫做constructor, 這個屬性包含了一個指針念脯,指向原構(gòu)造函數(shù)狞洋。
拓展:
js創(chuàng)建對象的方式:
1、字面量方式:
2绿店、構(gòu)造器方式:
3吉懊、Object.create()方式: