prototype、_proto_
1、函数身上才有prototype,例如String、Number、boolean、Array、Object。而其它任何通过构造函数实例化出来的对象,身上都有__proto__的属性。(不包括null和undefined)。
2、实例化对象的__proto__就是构造函数的prototype:‘a’.proto === String.prototype
这样,我们就能很轻松的知道下面的输出答案是什么了。
console.log(typeof ''.prototype);// undefined
console.log(typeof ''.__proto__);// object
console.log('a'.__proto__ === String.prototype)// true
constructor属性
它的作用就是从一个对象指向一个函数,这个函数就是该对象的构造函数。
fn.prototype.constructor === fn