为了账号安全,请及时绑定邮箱和手机立即绑定

js中 instanceof 操作 值为字符串的 字面量 和 非字面量时,返回值为什么不同?

js中 instanceof 操作 值为字符串的 字面量 和 非字面量时,返回值为什么不同?

不负相思意 2018-10-19 14:10:46
一个网友回答 " a instanceof b 真正的语义是检查 b.prototype 是否在 a 的原型链上 ",但是str1(字符串) 和 str2(对象) 的原型链相同啊,为什么结果还不一样?是不是就仅是因为str1是野生的,而str2是亲生的,所以结果才不一样?还是我理解错了?望前辈指点
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

因为str1.__proto__ 相当于toObject(str1).__proto__.所以输出的是String

即会自动转换成Object 类型。

但是 str1 不是对象类型,所以str1 instanceof String 返回 false


查看完整回答
反对 回复 2018-11-01
  • 1 回答
  • 0 关注
  • 904 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信