用Javascript中的唯一键包装对象
我想创建一个具有唯一键的对象,如:用Javascript中的唯一键包装对象,javascript,Javascript,我想创建一个具有唯一键的对象,如: let id=Symbol(“id”); 设id2=符号(“id”); 常量对象={ [id]:()=>“测试” } log(obj[id]())您可以使用try-catch块 try { const obj = { [id]: ()=> 'test' } } catch(err) { console.log('test error catched. Do what you want to do here.'); } 没
let id=Symbol(“id”);
设id2=符号(“id”);
常量对象={
[id]:()=>“测试”
}
log(obj[id]())
您可以使用try-catch块
try {
const obj = {
[id]: ()=> 'test'
}
} catch(err) { console.log('test error catched. Do what you want to do here.'); }
没有必要检查未声明的变量错误,或者说,这太糟糕了 如果您的目标只是使用某种方法构建对象,则只需按照以下方式构建:
const test = () => 'test';
const obj1 = { somethingYouWant: test };
const obj2 = { id: test };
const obj3 = { otherThing: test };
在调用该对象之前,可以检查该对象中是否存在属性,请参阅
let id=Symbol(“id”);
设id2=符号(“id”);
常量对象={
[id]:()=>“测试”
}
if(obj.hasOwnProperty(id2)){//false
console.log(obj[id2]());
}
if(obj.hasOwnProperty(id)){//true
console.log(obj[id]());
}
为什么不做类似于if(id的类型!==“未定义的)”
?一般来说,为什么要尝试使用可能声明或可能未声明的变量?假设OP甚至没有声明变量id
(我仍然不知道为什么),那么hasOwnProperty
没有帮助,因为它仍然读取缺少的变量,并且会抛出异常。