var mString = new String('A');
console.log(typeof mString); // object
console.log(mString instanceof String); // true
console.log(mString instanceof Object); // true
console.log(mString.__proto__ === String.prototype); // true
console.log(mString.__proto__.__proto__ === Object.prototype); // true
现在,为什么
console.log(String.__proto__.__proto__ === Object.prototype); // true
而不是
console.log(String.__proto__ === Object.prototype); // false
走上原型链?
String和Object原型之间有什么关系?
答案 0 :(得分:2)
contains
它是一个函数的原型,因为String是一个构造函数。
答案 1 :(得分:-1)
当您使用instanceof Object
时,表示该变量是Object
或"扩展" Object
。
如上所述here " instanceof运算符测试构造函数的prototype属性是否出现在对象的原型链中的任何位置。"
因此mString.__proto__
不等于Object.prototype
,但Object.prototype
确实在原型链上更高,这就是它们不相等的原因。 String原型继承了Object原型。