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

鍍金池/ 問答/HTML/ 用系統(tǒng)創(chuàng)建的空對象p3和用構(gòu)造函數(shù)創(chuàng)建的p1是否一樣呢?

用系統(tǒng)創(chuàng)建的空對象p3和用構(gòu)造函數(shù)創(chuàng)建的p1是否一樣呢?

function CreatePerson(name){

}
var p1 = new CreatePerson('小明');
console.log(p1,"p1");
var p3=new Object()
console.log(p3,"p3")
問題1:在構(gòu)造函數(shù)中什么都不寫的話是不是相當(dāng)于創(chuàng)建了一個(gè)空對象呢?

問題2:對比用系統(tǒng)創(chuàng)建的空對象p3和用構(gòu)造函數(shù)創(chuàng)建的p1是否一樣呢?在用console.log輸出之后看到的還是有些不一樣的?
圖片描述

回答
編輯回答
初心

你只要知道new干了什么就知道了

//定義
function CreatePerson(name) {
    this.name = name;
}
CreatePerson.prototype.show = function () {
    console.log(this.name)
}
//通過new
var p1 = new CreatePerson('小明');
//模擬new干了那些事
var p2 = {};  //{} == new Object() == Object.create({})
p2.__proto__ = CreatePerson.prototype;
CreatePerson.call(p2, "小明");

console.log(p1)
console.log(p2)

p1.show();
p2.show()
2017年12月10日 15:11
編輯回答
雅痞

因?yàn)閜1.__proto__=p3,所以p1!=p3

2017年3月9日 21:43
編輯回答
安于心

是不一樣。
p1是 CreatePerson 構(gòu)造的,p1 原型(__proto__)是 CreatePerson.prototype
p3是 Object 構(gòu)造的, p3 原型(__proto__)是 Object.prototype

2017年1月3日 05:47