1. 原型
任何对象都有一个原型对象,这个对象的内置属性_proto_指向它的构造函数的prototyoe指向的对象,即任何对象都是由一个构造函数创建的,被创建的对象都可以获得构造函数的prototype属性。对象是没有prototype属性,只有方法才有prototype属性。
任何对象都有一个constructor属性,指向创建此对象的构造函数,比如说{}对象,它的构造函数是function Object(){}。
2. js原型链
js值类型(基本数据类型)有: 字符串String、数字Number 、布尔Boolean 、对空Undefined 、未定义Null、 Symbol;引用数据类型: 对象Object、数组Array、函数Function
String、Number、Object、Function、Array之间就存在着原型链的关系。如下图所示:
通过观察原型链,可知:String、Number、Array、Object、Function的_proto_指向了Function.prototype,他们都是由Function创建的;
String.prototype、Number.prototype、Array.prototype、Function.prototype的_proto_都指向了 Object.prototype,这些原型对象,都是由Object.prototype创建的。