Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

@@toStringTag 强势来袭

  在 ES6 中,Object.prototype.toString 的值是可以通过 @@toStringTag 来决定的。ES5 时代我们可能会通这种方式来判断变量类型,因为 ES5 中这个方法的取值范围是有限的。但是引入 @@toStringTag 后就不同了。不过目前浏览器的支持程度还很糟糕,暂时不会有大问题。
  目前稳定版的 Chrome 中就实现了 Symbol,但没有实现 Symbol.toStringTag。不过我们已经隐约可以看见 toStringTag 的身影了。但是就目前的稳定版 Chrome 而言,这东西还只是一个摆设,并没有实际生效。一些内置对象依然以 ES5 的方式来计算 Object.prototype.toString 的结果,目前就算使用这个 @@toStringTag 也不会生效。

  Chrome 现在是如此蛋疼,那 Firefox 呢?目前的稳定版 Firefox 还不支持 Symbol(貌似 Firefox 36 才开始支持),而 Firefox 特有的字符串形式 @@* 属性也没有支持 toStringTag,但 Firefox 确实比 Chrome 实现得彻底,比如我们可以从 Promise 对象上看出。

  由于目前浏览器的实现依然很糟糕,所以暂时不会影响到以前的代码。等到以后这东西普及了,以前写的很多 Object.prototype.toString 可能都会出问题。是不是要稍微注意一下了呢?
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^