gpt4 book ai didi

javascript - 传播对象时调用什么方法?

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

使用 spread syntax 时在数组文字声明中, Symbol.iterator 上的方法使用:

const o = {
*[Symbol.iterator]() {
yield 1
},
}
console.log([...o]) // [ 1 ]

但是当对对象属性使用展开语法时,使用什么方法呢?

const o = {
p: 'this is p',
}
console.log({...o}) // { p: 'this is p' }

最佳答案

无,属性传播由 JavaScript 引擎直接完成,对象上没有用于执行此操作的方法。

详细信息在 the specification ;基本上,评估属性(property)价差称为抽象 CopyDataProperties操作,仅使用内部功能(除了主机提供的外来对象 [如 DOM 对象] 可以有 [[OwnPropertyKeys]] 的特殊定义,但它会影响使用它的所有操作,而不仅仅是传播)。

关于javascript - 传播对象时调用什么方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60506976/

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