看到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只能用这种方式来克隆?