在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 實(shí)例化之后的prototype對(duì)象為什么就不對(duì)了

實(shí)例化之后的prototype對(duì)象為什么就不對(duì)了

function Person() {

    }
Person.prototype = {
    constructor: 'Person',
    name: 'LI',
    age: 22
}
var a = new Person();
console.log(a.age)


function Person() {

    }
var a = new Person();
Person.prototype = {
    constructor: 'Person',
    name: 'LI',
    age: 22
}
console.log(a.age)
回答
編輯回答
葬憶

代碼有執(zhí)行順序,你第二種寫法里new對(duì)象的時(shí)候Person還沒有prototype

2017年8月17日 23:33
編輯回答
雨蝶

先講一下,對(duì)象尋找原型鏈?zhǔn)峭ㄟ^ __proto__ 屬性來尋找的,每一個(gè)(構(gòu)造)函數(shù),在聲明之后就會(huì)在內(nèi)存中同步開辟一個(gè)空間保存一個(gè)對(duì)象,構(gòu)造函數(shù)中會(huì)有一個(gè)prototype指向這個(gè)對(duì)象,而這個(gè)對(duì)象中會(huì)有一個(gè)constructor屬性指向構(gòu)造函數(shù)

function Person() {}
var a = new Person();

當(dāng)代碼執(zhí)行這句的時(shí)候,會(huì)實(shí)例化一個(gè)a對(duì)象,其中有個(gè)屬性 __proto__ 指向構(gòu)造函數(shù)的prototype

a.__proto__ === Person.prototype;//true
Person.prototype = {
    constructor: 'Person',
    name: 'LI',
    age: 22
}

執(zhí)行這句的時(shí)候,Person.prototype將不再指向上面講的原型對(duì)象,而是指向了別的對(duì)象(變心了),但是對(duì)于a來講,他的爸爸還是上面講的原型對(duì)象(只有一個(gè)constructor屬性的空對(duì)象)

通俗的將就是 改嫁后生的娃 與 改嫁前生的娃,兩個(gè)娃爸爸不同

2018年2月21日 10:55