gpt4 book ai didi

调用缺少的对象属性时,javascript 打印错误

转载 作者:行者123 更新时间:2023-12-02 21:43:28 31 4
gpt4 key购买 nike

我想编写一个代理对象,以便在调用原始对象中未找到的某些属性时自动打印错误。

const proxyObjectFn = () => {
const _obj = Object.assign({}, originalObject);

const get = (key) => {
const value = _obj[key];
if (value === undefined) {
console.error(`${key} not found`);
}
return value;
};

return {
get,
};
};

const proxyObject = proxyObjectFn();

export default proxyObject;

// caller
proxyObject.get('someProperty')

这可行,但是有什么优雅的方法可以让我通过 proxyObject.someProperty 而不是 proxyObject.get('someProperty') 进行调用?

更新

让我说得更具体一些。实际上我正在编写一个翻译对象。

原始对象可能来自json,例如{ "HELLO_KEY": "Hello World"}。我要在 UI 显示代码中调用 { label: _t.SOME_I18N_KEY } ,假设 _t 是上面的代理对象。我可以打印警告来告诉我缺少翻译。

最佳答案

您可以使用Proxy对象:

const handler = {
get: (obj, prop) => {
if(!obj.hasOwnProperty(prop)) console.error(`${prop} not found`);
return obj[prop];
}
};

const _t = new Proxy({ "HELLO_KEY": "Hello World" }, handler);

console.log(_t.HELLO_KEY);
console.log(_t.SOME_NONEXISTENT_KEY);

关于调用缺少的对象属性时,javascript 打印错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60324341/

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