如何克隆一个Symbol,有必要克隆吗?

看到lodash库的源码有一段用于克隆Symbol:

const symbolValueOf = Symbol.prototype.valueOf
function cloneSymbol(symbol) {
    return Object(Symbol.prototype.valueOf.call(symbol))
}

我测试了一下:

typeof Symbol('any') // 'symbol',这是一般的Symbol
typeof Object(symbolValueOf.call(symbol)) // 'object',若经过上面方法,克隆出来的typeof就不同了

所以是上面lodash的这段代码有缺陷吗?还是因为Symbol只能用这种方式来克隆?

阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题