Samgao0312 / Blog

MIT License
1 stars 1 forks source link

【积点成势】Object.definedProperty与Proxy的区别 #147

Open Samgao0312 opened 2 years ago

Samgao0312 commented 2 years ago

1. Object.defineProperty只能劫持对象的属性,而 Proxy 是直接代理对象。 由于 Object.defineProperty 只能对属性进行劫持,需要遍历对象的每个属性,如果属性值也是对象,则需要深度遍历。而 Proxy 直接代理对象,不需要遍历操作。

2. Object.defineProperty对新增属性需要手动进行 Observe。 由于 Object.defineProperty劫持的是对象的属性,所以新增属性时,需要重新遍历对象,对其新增属性再使用 Object.defineProperty 进行劫持。

参考阅读