javascript - 在 javascript 中,为什么是 {}!==Object()?

标签 javascript object

给定

    var o = {};
    var p = new Object();

    p === o; //false

    o.__proto__===p.__proto__  // true

为什么这是错误的?

请告诉我返回 false 的直接原因??

最佳答案

对象的=== is defined as :

11.9.6 The Strict Equality Comparison Algorithm

The comparison x === y, where x and y are values, produces true or false. Such a comparison is performed as follows:

...

7. Return true if x and y refer to the same object. Otherwise, return false.

在这种情况下,虽然两者都是空对象,但它们是单独创建的,因此不引用同一个对象。

作为旁注,两种结构做同样的事情;但通常的做法是使用 {}

关于javascript - 在 javascript 中,为什么是 {}!==Object()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8699816/

相关文章:

perl - 在哪里可以找到 perl 共享对象目录?

swift - cellTopLabel背景颜色和cornerRadius

r - 从矢量值命名对象

java - 从对象中提取变量的值?

javascript - 在动态页面高度变化时将页脚放在视口(viewport)底部

javascript - 如果仅返回一个对象,则 API 调用不适用于 TypeScript

javascript - html radio onchange 事件不会触发?

javascript - 仅当找到或未找到结果时,如何才能 console.log ?

javascript - 如果浏览器自动填充字段,则触发 jquery 表单验证

javascript - 在 JavaScript 中通过字符串名称引用对象