JavaScript 中的 Symbols 怎么用

JavaScript引入Symbols类型以防止属性名冲突,特别是在模拟私有属性时。通过Symbol()创建,每个symbol都是唯一的,可用作对象键。Symbol.iterator用于实现迭代,避免命名冲突。Symbols还可用于创建私有属性,不会出现在Object.keys()中,保证数据安全,是处理对象内部状态的好选择。
摘要由CSDN通过智能技术生成

 

为了防止属性名冲突, JavaScript 介绍了一种 symbols 的类型。在 2015 - 2019 中,symbols 提供一种方法去模拟私有属性。

简介

创建 symbol 最简单的方式是调用 Symbol() 方法。有两个关键属性使得 symbols 变得特殊:

  1. Symbols 可以用于对象 key。只有字符串和 symbol 可以被用于对象 key。
  2. 任何两个 sybmols 都不相等
const symbol1 = Symbol();
const symbol2 = Symbol();

symbol1 === symbol2; // false

const obj = {};
obj[symbol1] = 'Hello';
obj[symbol2] = 'World';

obj[symbol1]; // 'Hello'
obj[symbol2]; // 'World'
复制代码

尽管 symbol() 看起来是个对象,实际上它也属于 7 种基本类型。对 Symbol 使用 new 操作符会导致一个错误。

const symbol1 = Symbol();

typeof symbol1; // 'symbol'
symbol1 instanceof Object; // false

// Throws 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值