,他们不是object,所以没有原型,没有构造函数,所以并不是像创建对象那样通过构造函数创建的实例。...:
创建一个对象
把创建的对象赋值给this
执行函数中的代码, 即把属性和方法添加到赋值之后的this
返回新对象
用伪代码来说明上述new Person()的过程如下:
// 使用new操作符时,会激活函数本身的内部属性...都指向了Person.prototype中的showName
这种构造函数模式和原型模式组合使用,基本上可以说是js中面向对象开发的一种默认模式,介绍了以上这几种常用创建对象的方式, 还有其他不常用的模式就不介绍了...继承
什么是原型链
ECMA中继承的主要方法就是通过原型链,主要是一个原型对象等于另一个类型的实例,由于实例内部含有一个指向构造函数的指针,这时候相当于重写了该原型对象,此时该原型对象就包含了一个指向另一个原型的指针...,这是因为使用字面量重写原型对象,这个原型对象变成了一个Object的实例,原型对象本身已经不存在最初函数创建时初始化的constructor属性,这是原型对象的[[prototype]]指针指向了Object.prototype