原型和原型链理解

这个图大概能概括原型和原型链的关系
1.对象都是通过访问原型
2.原型都是通过 访问构造函数
3.原型是构造函数的
【原型和原型链理解】4.原型也是对象实例 也是通过访问原型(.)
5..的原型通过访问 为null
那么原型和原型是什么?
原型:任何一个JS对象在创建时会关联的一个对象,创建出来的对象能继承原型上的属性
原型链:当对象访问一个属性时,先找自身有无其属性,没有就去原型上找,因为原型也是一个对象实例,所以在构造函数原型上找不到,就会去对象原型(.)上找
常见的面试题和解析
function Person() {}const person = new Person()console.log(person.__proto__ === Person.prototype) // trueconsole.log(Person.prototype.constructor === Person) // trueconsole.log(Object.getPrototypeof(person) === person._proto_) // trueconsoe.log(Person.prototype.__proto__ === Object.prototype)// trueconsoe.log(Object.prototype.constructor === Object) // true//见图即可//Object.getPrototypeof返回指定对象的原型console.log(person.constructor ==== Person) // true//因为person.constructor ,先找自身属性,没有就找原型 Person.prototype,Person.prototype.constructor 刚好就等于Personconsole.log(Object.prototype._proto_) // null