Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Javascript中的唯一键包装对象_Javascript - Fatal编程技术网

用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
没有帮助,因为它仍然读取缺少的变量,并且会抛出异常。