JavaScript的instanceof问题?

instanceof 检测一个对象A是不是另一个对象B的实例的原理是:查看对象B的prototype指向的对象是否在对象A的[[prototype]]链上。那

"".__proto__===String.prototype

true

"" instanceof String

false

String.prototype明明在“”的原型链上 为什么是false


MMTTMM
浏览 229回答 3
3回答

慕丝7291255

问题的根源出在第一句. "" 字面字符串是原始类型, 没有属性和方法. 所以 javascript 会有一个行为叫 autobox 来把原始对象临时的转为相应的包裹对象."".__proto__===String.prototype这里实际是这样的new String("").__proto__ === String.prototype

ibeautiful

对字符串字面量进行点操作时回转换成string实例吧
打开App,查看更多内容
随时随地看视频慕课网APP