通过填充物查找我发现符号类型使用如下:
if (window.Symbol) {
obj = {cached: Symbol(), /****/ };
}
/* and is used */
obj.cached = [] // which overrides Symbol(),
我是JS中Symbol()
的新手,但据我所知,它应该用于制作避免碰撞的唯一对象键,所以应该或多或少地使用:
var obj = {}, cached;
if (window.Symbol) {
cached = Symbol();
obj[cached] = null;
}
/* an then used */
obj[cached] = [ /*****/ ];
我错过了什么吗?
答案 0 :(得分:2)
我不太了解你的例子,但总的来说Symbol()
是"保证是独一无二的东西"。它可以用类似的方式使用:
var cached = Symbol();
var state = {obj: cached };
// code that can change state.obj in arbitrary ways
if (state.obj === cached)
console.log("still cached");
另一方面,人们可以使用cached = Object()
具有相同的效果......所以也许它不是最好的例子。