在6符号类型的使用详解

在6符号类型的使用详解
本文阐述了6符号类型分享给您参考,如下:

符号是一个新添加的类型在6。

正如我们所知道的,Javascript中有以下几种类型:

未定义的、空的、布尔的、数字、字符串、对象。

但是,在处理某些情况时,上述类型是远远不够的:

假设我们想移动div,我们还需要判断div在某些情况下是否处于移动状态。因此,我们将考虑为div对象设置属性
如果(元。正在){
smoothanimations(元);
}
element.ismoving =真;

但也存在一些问题,例如:

我们可能会与第三方图书馆发生冲突。

我们可能与未来的标准冲突。

因此,您可以使用第二种方法,即使用加密函数来生成值:
VaR正= securerandom.generatename();

如果(元{正}){
smoothanimations(元);
}
元{ } =真实动人;

这确实解决了冲突问题,但它带来了一个调试问题,每当我们查看对象的属性时,就会看到很多垃圾名。

所以为了解决冲突的问题,提出了一种新型ES6如符号。

符号是一种特殊的、不可变的数据类型,可以用作对象属性的标识符:
var SYM1 =符号();
var Sym2 =符号(foo);
var sym3 =符号(foo);

符号()不会将字符串强制为符号,每次都创建一个新符号。
符号()=符号()

因此,您可以使用此特性创建私有属性:
(函数(){())
创建符号
var =符号();
函数的MyClass(私人数据){
这{key} =私人数据;
}
myclass.prototype = { {
DoStuff:函数(){
…这个{键}…
}
};
});
var c =新MyClass(你好)
键否不能访问该属性,因为它是私有的。

符号也可以用来化解上述冲突问题:
一个唯一的符号
VaR正=符号(正);

如果(元{正}){
smoothanimations(元);
}
元{ } =真实动人;

当然,你也可以生成符号类型可以共享与外面的另一个调用的方法,这是symbol.for方法。

的symbol.for(关键)方法将从注册表中找到对应的符号象征,根据给定的密钥。如果它找到它,它会返回它。否则,创建一个与该键关联的新符号,并将其放置在符号注册表中。
symbol.for(foo); / /在注册表中创建一个符号和象征,关键是foo
symbol.for(foo); / /读为foo象征符号键在注册表
symbol.for(条)= symbol.for(条); / /真的,证明了上述所说的
符号(bar)=符号(bar);,false,符号()函数返回一个新符号
VAR符号= symbol.for(马里奥);
sym.tostring();
符号(马里奥),马里奥是符号注册表符号中的符号,关键字是描述符号本身的字符串。

因此,为了防止冲突,我们最好给符号加前缀:
symbol.for(MDN。foo);
symbol.for(MDN。酒吧);

希望本文有助于ECMAscript程序设计。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部