gpt4 book ai didi

JavaScript:对象 `{}` 和数组 `[]` 在什么意义上相同或不同

转载 作者:行者123 更新时间:2023-11-28 12:14:45 25 4
gpt4 key购买 nike

我试图理解以下输出:

'use strict';
console.log(Object.getPrototypeOf([]));
// []
console.log(Object.getPrototypeOf(Array.prototype));
// {}
console.log(Object.getPrototypeOf([]) == Array.prototype);
// true
console.log(Object.getPrototypeOf([]) === Array.prototype);
// true
console.log([]=={});
// false
console.log([]==={});
// false

特别是,为什么第 6 行和第 8 行的计算结果为 true,而第 10 行和第 12 行的计算结果为 false。#

编辑:我在第 6 行和第 8 行犯了一个愚蠢的拼写错误,现已编辑。这使得问题变得不同。抱歉。

最佳答案

Javascript中的所有原型(prototype)最终都继承自同一个对象原型(prototype)。这就是为什么如果您将属性添加到对象原型(prototype),则程序中的所有对象最终都将具有该属性。在第 6 行和第 8 行中,您正在比较Object.prototype 与其自身相等。

然而,在第 10 行和第 12 行中,您正在比较 2 个不同的对象,它们可能共享相同的原型(prototype),但它们在内存中是完全不同的两个对象。

关于JavaScript:对象 `{}` 和数组 `[]` 在什么意义上相同或不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52025297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com