标签:... 27 String 正则表达式 Symbol JavaScript match 其实
写在前面
目前还在看基础章
遇到了 Symbol 类型
本以为 Symbol 是用来解决 私有变量的问题
但是 Symbol 还是访问的到
然后继续看
发现 一些挂载在 原型链 上的方法其实大多和 常用内置符号有关
比如 Symbol.hasInstanceof 和 isinstanceof 操作符有关
当然 下面只是解释一下 Symbol 关于 正则表达式的地方
例子
如果要用 .match 方法
我们得 传入一个 正则表达式 RegExp 对象
( 下面的 g 的意思是全局匹配 与 普通匹配 有一点区别 返回值 不一样 )
那么 我想要通过 .match 返回一些其他东西 有么有可能呢
我非得要封装一个 函数吗
用Symbol "重写"
正如上面说的,其实我们可以做到
在 js 红宝书 上有关 Symbol 和 正则表达式 其实概括来说就是
1. String.prototype.match() 中( 还可以是 replace , split ... ) 接受的参数 默认是 正则表达式 如果不是 则会 转换成正则表达式
2. 正则表达式上面默认有 Symbol.match 的定义,而调用 String.prototype.match() 其实就是调用 Symbol.match 这个方法 ( 个人理解 )
于是乎 我们举个例子
对于上面的第一点
可以看到 输出 就证明 有这个 Symbol 函数( Symbol 使用[ ] 来访问 )
对于第二点 就是可以重写的方法 我这里用 replace 解释一下
其实 整个关系 有点像迭代
...
当然 你可以 return 一些奇奇怪怪的东西
总结
继续看书
标签:...,27,String,正则表达式,Symbol,JavaScript,match,其实 来源: https://www.cnblogs.com/WaterMealone/p/14457137.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。