通过一个多边形填充,我发现使用的符号类型如下:
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] = [ /*****/ ];我是不是遗漏了什么?
发布于 2016-02-25 14:50:29
我不太明白你的例子,但总的来说,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() .所以也许这不是最好的例子。
https://stackoverflow.com/questions/35625867
复制相似问题