美文网首页Web前端之路程序员
JavaScript 中 Symbol 特性及使用

JavaScript 中 Symbol 特性及使用

作者: 老邵 | 来源:发表于2018-04-14 20:01 被阅读21次

    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
    }
    

    相关文章

      网友评论

        本文标题:JavaScript 中 Symbol 特性及使用

        本文链接:https://www.haomeiwen.com/subject/jgkzhftx.html