ConardLi / ConardLi.github.io

ConardLi 写 blog 的地方
https://mp.weixin.qq.com/s?__biz=Mzk0MDMwMzQyOA==&mid=2247493407&idx=1&sn=41b8782a3bdc75b211206b06e1929a58&chksm=c2e11234f5969b22a0d7fd50ec32be9df13e2caeef186b30b5d653836b0725def8ccd58a56cf#rd
1.12k stars 269 forks source link

部分代码是多余的 #7

Closed dellyoung closed 4 years ago

dellyoung commented 4 years ago

读了下发现部分代码是多余的:

经过isObject后,显然(Number String Boolean Symbol Undefined Null)这些类型都是不会往下走的而是直接返回的

但是发现cloneOtherType还是有对(Number String Boolean Symbol )的处理,我认为后面应该是没有必要再处理的

lianlilin commented 4 years ago

读了下发现部分代码是多余的:

经过isObject后,显然(Number String Boolean Symbol Undefined Null)这些类型都是不会往下走的而是直接返回的

但是发现cloneOtherType还是有对(Number String Boolean Symbol )的处理,我认为后面应该是没有必要再处理的

是为了处理类似于这种情况吧? let a = new Boolean(); console.log(Object.prototype.toString.call(a)); // [object Boolean]

dellyoung commented 4 years ago

读了下发现部分代码是多余的: 经过isObject后,显然(Number String Boolean Symbol Undefined Null)这些类型都是不会往下走的而是直接返回的 但是发现cloneOtherType还是有对(Number String Boolean Symbol )的处理,我认为后面应该是没有必要再处理的

是为了处理类似于这种情况吧? let a = new Boolean(); console.log(Object.prototype.toString.call(a)); // [object Boolean]

有道理,不过我又发现没有对属性名为Symbol类型进行处理。处理这个需要用getOwnPropertySymbols这个方法