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后面的那个字符串标识对象类型

你可能感兴趣的:(javascript,前端)