Symbol.toStringTag 作用
对象上的Symbol.toStringTag属性用于对象toString类型标识
Symbol.toStringTag 解释
对象调用toString方法,如果这个属性存在,它的返回值会出现在toString方法返回的字符串之中,表示对象的类型。
webpack中也有使用,用于定义模块导出exports添加Module类型的属性
webpack使用Symbol.toStringTag
js
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后面的那个字符串标识对象类型