gpt4 book ai didi

javascript - 如果在对象被卡住后添加新属性,则抛出错误

转载 作者:搜寻专家 更新时间:2023-11-01 00:30:27 25 4
gpt4 key购买 nike

使用JavaScript/Node.js,如果一个对象在被卡住后被修改,是否会抛出一个错误?我想在一个对象上放置一个不可变属性,并防止该对象被重新分配。

在这种情况下,我正在编写一个库,我需要赋值 module.exports = x; 是不可变的。

我想阻止用户向 x 添加属性以及阻止 module.exports 被重新分配。不仅如此,如果用户尝试上述操作,我想抛出一个错误,而不是静默错误,这可能吗?

最佳答案

如果用户代码在严格模式下运行,它会自动抛出错误。

function log(obj) {
document.querySelector('pre').innerText += JSON.stringify(obj, null, 2) + '\n';
}

function nonStrict(obj) {
obj.b = 2;
log(obj);
}

function strict(obj) {
'use strict';
try {
obj.b = 2;
} catch(e) {
log(e.message);
}
}

var obj = {
a: 1
};
Object.freeze(obj);
nonStrict(obj);
strict(obj);
<pre></pre>

关于javascript - 如果在对象被卡住后添加新属性,则抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220093/

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