早上好,各位!今天咱们来聊聊 JavaScript 里那些听起来有点神秘,但实际上非常给力的 Symbol 类型。尤其是那些带着 Symbol. 前缀的家伙们,比如 Symbol.iterator、Symbol.hasInstance、Symbol.toPrimitive 等等。别担心,我会用最接地气的方式,把它们扒个底朝天,保证你听完之后,感觉自己好像开了天眼,看代码都自带光环了。 Symbol 类型,不止于“独一无二” 首先,简单回顾一下 Symbol。这玩意儿是 ES6 引入的,最大的特点就是唯一性。每次你 Symbol() 一下,得到的都是一个全新的、独一无二的值。它的主要用途是作为对象属性的键(key),防止属性名冲突。但是,今天我们要关注的是那些预定义的、特殊的 Symbol 属性,它们可不仅仅是用来当 key 这么简单。 1. Symbol.iterator:让你的对象“可迭代” 想象一下,你想让你的自定义对象也能像数组一样,用 for…of 循环遍历,怎么办?这时候 Symbol.iterator 就派上用场了。 Symbol.iterator 是一个方法,当你给一 …
继续阅读“阐述 JavaScript 中 Symbol 类型的 Symbol.iterator, Symbol.hasInstance, Symbol.toPrimitive 等用途。”