JavaScript中Symbol的用法详解

分类:知识百科 日期: 点击:0

Symbol

Symbol是ES6中新增的一种数据类型,它是一种独一无二的值,可以用来创建对象的唯一标识符,它的特点是:

  • 1、Symbol的值是不可变的,不能被改变,所以可以用来创建唯一标识符;
  • 2、Symbol的值不能被枚举,不能被for...in循环;
  • 3、Symbol的值不能被Object.keys()或Object.getOwnPropertyNames()获取。

Symbol的使用方法

Symbol的使用方法有两种:

  • 1、使用Symbol()函数创建Symbol值:
    let sym = Symbol();
    这种方法创建的Symbol值没有描述,可以使用第二种方法添加描述;
  • 2、使用Symbol函数的参数创建Symbol值:
    let sym = Symbol('description');
    这种方法创建的Symbol值有描述,可以使用String()函数获取描述:
    console.log(String(sym)) // 'description'

Symbol值可以用来创建对象的唯一标识符,用法如下:

let obj = {
    [sym]: 'value'
};
console.log(obj[sym]); // 'value'

Symbol值也可以用来定义对象的属性名,用法如下:

let obj = {};
Object.defineProperty(obj, sym, {
    value: 'value'
});
console.log(obj[sym]); // 'value'

Symbol还可以用来定义对象的方法名,用法如下:

let obj = {
    [sym]() {
        console.log('method');
    }
};
obj[sym](); // 'method'

Symbol还可以用来定义全局变量,用法如下:

let sym = Symbol.for('globalSymbol');
console.log(Symbol.keyFor(sym)); // 'globalSymbol'

以上就是Symbol的使用方法,Symbol可以用来创建对象的唯一标识符,也可以用来定义对象的属性名、方法名,以及定义全局变量,使用起来非常方便。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。