xiaokeqi / i-learned

1 stars 0 forks source link

Symbol类型在实际开发中的应用、可手动实现一个简单的Symbol #57

Open xiaokeqi opened 3 years ago

xiaokeqi commented 3 years ago

Symbol两大特性,保证唯一且不可被迭代(for in for of hasOwnProperty) 其使用方法Symbol('') 若强相等,可使用Symbol.for('cat') === Symbol.for('cat'),其存储在全局环境下 Symbol('cat') === Symbol('cat') // false

手动实现的话,其实就是要保持两大特性,一个是唯一,一个是不能被枚举和遍历 唯一靠hash函数生成,不能枚举和遍历,靠设置Object.defineProperty中的enum来使用,而且不可以被new

xiaokeqi commented 3 years ago

具体实现可参考: https://www.jianshu.com/p/ef93ac41b511