gpt4 book ai didi

javascript - 深度冷冻任何类型

转载 作者:行者123 更新时间:2023-12-03 05:21:53 27 4
gpt4 key购买 nike

这足以深度卡住任何类型吗?

function freeze(obj) {
if (typeof obj === 'object') {
Reflect.ownKeys(obj).forEach((key) => {freeze(obj[key])});
}

return Object.freeze(obj);
}

最佳答案

没有。不幸的是,JavaScript 仍然没有办法做到这一点。例如,Date 实例无法卡住:

var dt = new Date(2016, 11, 27);
console.log(dt.getDate()); // 27
Object.freeze(dt);
dt.setDate(dt.getDate() + 1);
console.log(dt.getDate()); // 28

其他一些问题/注释:

  • As Matías said ,函数是对象,但是 typeof 将为它们提供 "function"
  • Reflect.ownKeys 仅提供对象的自己键,而不是其原型(prototype)的键。因此,根据您对“深度卡住”的定义,您可能需要在卡住对象之前将继承的属性复制到该对象。

关于javascript - 深度冷冻任何类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41343535/

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