admin 管理员组文章数量: 887021
2024年1月5日发(作者:css导航条上怎么加图片)
es6中symbol的描述
ES6引入了新的原始类型Symbol(符号),它的目的在于为对象提供一种独一无二的标识,以及一种防止对象属性命名冲突的方式。
Symbol具有两个属性:
1、独一无二:Symbol是一种独一无二的数据类型,全局范围内有且仅有一份Symbol值,即使使用相同的参数也会生成不同的Symbol值,每个Symbol值之间都是不同的。
2、不可变:Symbol的值一旦创建就不可改变。
Symbols可以用作对象属性的独一无二标识符,这是一个非常实用的特性,因为它可以防止不同对象之间的属性命名冲突。
在ES6中,可以使用Symbol定义全局属性,以防止全局变量发生冲突:
let s = Symbol(My Symbol
window[s] = Hello World
Symbols也可以用作辨识符,以表明某个变量或属性是私有的:
const MySymbol = Symbol(my private symbol
class MyClass {
constructor(){
this[MySymbol] = I am private!;
}
getMySymbol(){
return this[MySymbol];
- 1 -
}
}
Symbols还可以用来表示函数的行为,可以为每个函数提供唯一的标识符:
const TYPE = {
ADD: Symbol(add
SUBTRACT: Symbol(subtract
MULTIPLY: Symbol(multiply
};
function mathFunc(type, a, b) {
switch (type) {
case :
return a + b;
case CT:
return a - b;
case LY:
return a * b;
default:
throw new Error(Unsupported type
}
}
Symbols也可以用于模块导入。当不同的模块引入同一个Symbol - 2 -
时,它们将引用到同一个符号,而不是模块的副本。
Symbols是ES6中一个重要的新特性,可以有效防止对象属性命名冲突,也可以用来做全局标识、辨识符以及表示函数行为。因此,它是非常强大而实用的新语法,可以大大提高代码的可维护性和可读性。
- 3 -
版权声明:本文标题:es6中symbol的描述 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1704457662h460607.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论