gpt4 book ai didi

javascript - JavaScript 是否保证声明期间的对象属性顺序?

转载 作者:行者123 更新时间:2023-11-29 23:27:29 24 4
gpt4 key购买 nike

例如:

var f=function(str){
console.log(str);
return str;
};
var obj={
a:f('value A'),
b:f('value B'),
};

//some other code

是否保证

value A
value B

代替

value B
value A

打印出来了吗?

注意:我问的是f()的执行顺序,不是Object.keys(obj)的键的顺序。

最佳答案

尽管这显然是 Does JavaScript Guarantee Object Property Order? 的副本,我会继续回答。

您的“无序属性集合”中的顺序零保证。但是,对于 Javascript 的现代实现,您可以期望属性通常按照您定义的顺序排列。

只要期望的顺序是可取的,但不是关键的,在大多数情况下假设它们是有序的是合理的。但是,如果您的业务逻辑取决于要保证的订单,那么您肯定需要重新考虑您的策略。

好的。我现在明白你实际上在问什么了。在这种特定情况下,答案是“是和否”。

您的函数在定义对象时被静态调用。因此定义属性 a 的函数将始终在定义属性 b 的函数之前被调用。

但是,console.log 是一个异步函数,您不能依赖它在记录 value B 之前记录 value A/p>

关于javascript - JavaScript 是否保证声明期间的对象属性顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48574651/

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