JS 引用对比引擎内部是如何实现的?

例如

const fun = () => 1
const fun1 = fun

console.log(fun === fun1) // true

这里的 fun === fun1 内部发生了什么?

const arr [1,2,3]
const arr1 = arr

console.log(arr === arr1) // true

这里的 arr === arr1 内部发生了什么?

查资料 Function/Array 也可以通过 .toString() 来进行比较(===),有大佬知道引擎内部是如何执行的吗?

阅读 1.8k
2 个回答

我想这个应该直接就是对象实例的对比,相当于比较内存地址。

函数和数组都是js引用类型数据,arr和arr1的标识符进行比较的话,是比较标识符引用的一块内存区域值,具体怎么实现的,应该去看V8源码吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题