instanceof 检测一个对象A是不是另一个对象B的实例的原理是:查看对象B的prototype指向的对象是否在对象A的[[prototype]]链上。那
"".__proto__===String.prototype
true
"" instanceof String
false
String.prototype明明在“”的原型链上 为什么是false
instanceof 检测一个对象A是不是另一个对象B的实例的原理是:查看对象B的prototype指向的对象是否在对象A的[[prototype]]链上。那
"".__proto__===String.prototype
true
"" instanceof String
false
String.prototype明明在“”的原型链上 为什么是false
问题的根源出在第一句. ""
字面字符串是原始类型, 没有属性和方法. 所以 javascript 会有一个行为叫 autobox 来把原始对象临时的转为相应的包裹对象.
"".__proto__===String.prototype
这里实际是这样的
new String("").__proto__ === String.prototype
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答928 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
对字符串字面量进行点操作时回转换成string实例吧