JavaScript 中 Symbol 特性及使用

Symbol 是一种数据类型,在 JavaScript 中 Symbol() 函数用来创建该类型的实例。像下面这样:

let sym = Symbol("str");

其中函数传入的字符串用来描述创建的实例,可以不传入。

Symbol() 生成的值是一个匿名的,不可枚举的,唯一的值。Symbol 类型唯一合理的用法是用变量存储 Symbol 值,然后用存储的值创建对象属性。

const pro = Symbol();
let obj = {};
obj[pro] = "symbol prototype";

除了自己创建,JavaScript 还提供了一些内建的 symbol。比如 Symbol.iterator 用来返回一个对象默认迭代器,可以用来使 Object 具有迭代行为:

var obj = {
 a: 1
};

obj[Symbol.iterator] = function () {
  return {
    next: function () {
        return {
            /* 这是要返回的对象,格式是固定的,done 为 true 时迭代停止 */
            value: 1,
            done: false
        }
    }
};
 }

for (let val of obj) {
console.log(val);// 会打印无数个 1
}
    原文作者:牛鼻子老邵
    原文地址: https://www.jianshu.com/p/472685e7aea5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞