source
function Car() {}
var car1 = new Car();
var car2 = Object.create(car1);
var car3 = Object.create(Car);
console.log('car1===>',car1)
console.log('car2===>',car2)
console.log('car3===>',car3)
console.log('Car====>',Car)
console.log(' ')
console.log('car1.prototype===>',Object.getPrototypeOf(car1))
console.log('car2.prototype===>',Object.getPrototypeOf(car2))
console.log('car3.prototype===>',Object.getPrototypeOf(car3))
console.log('Car.prototype====>',Car.prototype)
console.log(' ')
console.log('car1.constructor============>',car1.constructor)
console.log('car2.constructor============>',car2.constructor)
console.log('car3.constructor============>',car3.constructor)
console.log('Car.prototype.constructor===>',Car.prototype.constructor)
console.log('Car.constructor=============>',Car.constructor)
console
car1===> Car {}
car2===> Car {}
car3===> Function {}
Car====> function Car() {}
car1.prototype===> Car {}
car2.prototype===> Car {}
car3.prototype===> function Car() {}
Car.prototype====> Car {}
car1.constructor============> function Car() {}
car2.constructor============> function Car() {}
car3.constructor============> function Function() { [native code] }
Car.prototype.constructor===> function Car() {}
Car.constructor=============> function Function() { [native code] }
结论
Object.create()
image.pngnew 操作符
image.png1、对象与函数:car1、car2的性质都是Car对象,car3是Function对象,而Car属于函数。
2、原型:car1、car2、Car的原型都是Car对象本身,这也符合原型链的规则,而car3的原型就是Car函数,符合Object.create()的定义
3、构造函数:car1、car2、Car原型的构造函数都是函数对象,和原型同理。而car3和Car的构造函数则属于函数本身的构造函数
网友评论