webpack使用Symbol.toStringTag(Symbol.toStringTag用法)
作者:多啦-A萌
Symbol.toStringTag是一个内置 symbol,它通常作为对象的属性键使用,对应的属性值应该为字符串类型,这个字符串用来表示该对象的自定义类型标签,这篇文章主要介绍了webpack使用Symbol.toStringTag(Symbol.toStringTag用法),需要的朋友可以参考下
Symbol.toStringTag是一个内置 symbol,它通常作为对象的属性键使用,对应的属性值应该为字符串类型,这个字符串用来表示该对象的自定义类型标签,通常只有内置的Object.prototype.toString()方法会去读取这个标签并把它包含在自己的返回值里。
Symbol.toStringTag属性的属性特性: | |
---|---|
writable | false |
enumerable | false |
configurable | false |
Symbol.toStringTag用法
Symbol.toStringTag 作用
对象上的Symbol.toStringTag属性用于对象toString类型标识
Symbol.toStringTag 解释
对象调用toString方法,如果这个属性存在,它的返回值会出现在toString方法返回的字符串之中,表示对象的类型。
webpack中也有使用,用于定义模块导出exports添加Module类型的属性
webpack使用Symbol.toStringTag
export.toString(export); function __webpack_require__() { // .... } __webpack_require__.r = function(exports){ if (typeof Symbol !== 'undefined' && Symbol.toStringTag) { Object.defineProperty(exports, Symbol.toStringTag, {value: 'Module'}); } Object.defineProperty(exports, '__esModule', {value: true}); } const exports = {}; __webpack_require__.r(exports); console.log('exports', exports); // {__esModule: true, Symbol(Symbol.toStringTag): "Module"} console.log('exports toString', exports.toString()); // [object Module]
总结
Symbol.toStringTag属性可以用来定制toString方法返回[object Object]或[object Array]中object后面的那个字符串标识对象类型
到此这篇关于webpack使用Symbol.toStringTag(Symbol.toStringTag用法)的文章就介绍到这了,更多相关Symbol.toStringTag用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!