JavaScript 的 new 操作符,操作对象是一个函数(箭头函数,async 函数除外),一般来说此函数我们不自己写 return,此时返回的是个默认的对象 this。
如果自己写了返回,那么分两种情况:
- 返回的是对象或者方法,就返回我们自己写的返回内容
- 否则返回默认对象 this
JavaScript 的 new 操作符,操作对象是一个函数(箭头函数,async 函数除外),一般来说此函数我们不自己写 return,此时返回的是个默认的对象 this。
如果自己写了返回,那么分两种情况:
1 | function deepClone(obj) { |
最近 EDA 项目在解决一些性能上的问题,首当其冲的就是 deepClone,各种地方都在用,且十分卡性能。如何解决这个问题呢?
由于我们项目中的 deepClone 是一个递归版本的 deepClone,所以应该可以通过把它改成迭代版的 deepClone 来提速。
用栈来实现迭代。函数调用栈本身也是栈,但开销肯定比自己写的栈要大一些。