清晰了解原型鏈

2021-10-12 05:56:18 字數 2939 閱讀 4012

看完這段**:

/* 核心:原型物件和原型鏈 */

function

person

(name, age)

person.prototype.name =

"名字"

; person.prototype.age =99;

person.prototype.

showname

=function()

person.prototype.

showage

=function()

person.

show

=function()

var p1 =

newperson

("zs",19

);p1.

show()

;//show zs ? => 報錯

person.prototype.

show()

;//報錯

person.

show()

;//show person

/* 概念 */

/* 建構函式:person */

/* 原型物件: person.prototype */

/* 例項物件:p1 */

// console.log(p1.name); //zs

// console.log(person.prototype.name); //名字

// console.log(p1.age); //19

// console.log(person.prototype.age); //99

// console.log(person.name); //zs ? 名字? => person 函式是特殊的物件,函式有乙個name屬性

/* 物件在訪問屬性和方法的時候,先在自己身上查詢,如果有那麼就直接用,沒有就找以下原型物件 */

p1.showname()

;//name zs

person.prototype.

showname()

;//name 名字

p1.__proto__.

showname()

;//name 名字

person.

showname()

;//報錯 person自己並沒有showname方法,所以在這裡會報錯

script

>

>

function

person

(name, age)

this

.name = name;

this

.age = age;

this

.showinfo

=function()

this

.infoshow

=function()

} person.tt =

"我是tt"

; person.prototype.name =

"名字"

; person.prototype.age =99;

person.prototype.

showname

=function()

person.prototype.

showage

=function()

person.

show

=function()

var p1 =

newperson

("zs",19

);// console.log(classname, p1.classname); //報錯,undefined

// showclassname(); //uncaught referenceerror: showclassname is not defined

console.

log(p1.

infoshow()

);/* 建構函式:person */

/* 原型物件: person.prototype */

/* 例項物件:p1 */

/* 成員:物件的屬性和方法叫做成員 */

// 原型成員:原型物件的屬性(person.prototype.name\person.prototype.age)和方法(person.prototype.showname\person.prototype.showage)。

/* 例項成員:例項物件的屬性( this.name \ this.age)和方法(this.showinfo)。 */

/* 靜態成員:建構函式自己的屬性(person.tt)和方法(person.show)。 */

/* 私有成員:建構函式內部宣告的私有變數(classname)和私有函式(showclassname函式)。 */

/* 特權方法:特殊的例項方法(該方法可以訪問到私有成員)。 */

/* 例項化:建構函式建立例項物件的過程,我們叫做例項化。 */

script

>

body

>

html

>

原型 原型鏈

var animal function var dog function animal.price 2000 dog.prototype animal var tidy new dog console.log dog.price 為什麼輸出 undefined console.log tidy.pr...

原型,原型鏈

原型object.hasownproperty proname object 乙個物件的例項 propname 乙個屬性名稱的字串值 返回乙個布林值原型鏈中的this 原型物件 原型物件的作用 一般情況下,會把方法宣告在原型物件裡。目的是實現繼承。當物件訪問自身屬性或方法時,先從自身找有沒有,如果有...

原型 原型鏈

在最近的原型和原型鏈的學習中,感覺壓力有點大,學習難度也比較大,但又很基礎很重要,我們在學習中得要下很大的功夫才行。無論什麼時候,只要建立了乙個新的函式,就會根據一組特定的規則為這個函式建立乙個prototype的屬性,prototype這個屬性指向函式的原型物件,然後所有的的原型物件都會有乙個co...