AlexZ33 / lessions

自己练习的各种demo和课程
12 stars 2 forks source link

对于ES6中Symbol的极简兼容 #110

Open AlexZ33 opened 3 years ago

AlexZ33 commented 3 years ago
/**
 * 对于ES6中Symbol的极简兼容
 * 方便模拟私有变量
 */

let Symbol  = window.Symbol
let idCounter = 0

if (!Symbol) {
  Symbol = function Symbol(key) {
    return `__${key}_${Math.floor(Math.random() * 1e9)}_${++idCounter}__`
  }

  Symbol.iterator = Symbol('Symbol.iterator')
}

window.Symbol = Symbol