javascript 高级程序设计中有写,对象的继承总共有六种:
- 原型链继承,子原型是父原型的一个实例
- 借用构造函数继承,子构造函数调用父构造函数
- 组合式继承(组合 1 和 2)
- 原型式继承
- 寄生式继承
- 寄生式组合继承(组合 3 和 5)
javascript 高级程序设计中有写,对象的继承总共有六种:
JavaScript 的 new 操作符,操作对象是一个函数(箭头函数,async 函数除外),一般来说此函数我们不自己写 return,此时返回的是个默认的对象 this。
如果自己写了返回,那么分两种情况:
1 | function deepClone(obj) { |
最近 EDA 项目在解决一些性能上的问题,首当其冲的就是 deepClone,各种地方都在用,且十分卡性能。如何解决这个问题呢?
由于我们项目中的 deepClone 是一个递归版本的 deepClone,所以应该可以通过把它改成迭代版的 deepClone 来提速。
用栈来实现迭代。函数调用栈本身也是栈,但开销肯定比自己写的栈要大一些。