Open Samgao0312 opened 2 years ago
1. Object.defineProperty只能劫持对象的属性,而 Proxy 是直接代理对象。 由于 Object.defineProperty 只能对属性进行劫持,需要遍历对象的每个属性,如果属性值也是对象,则需要深度遍历。而 Proxy 直接代理对象,不需要遍历操作。
Object.defineProperty
2. Object.defineProperty对新增属性需要手动进行 Observe。 由于 Object.defineProperty劫持的是对象的属性,所以新增属性时,需要重新遍历对象,对其新增属性再使用 Object.defineProperty 进行劫持。
1. Object.defineProperty只能劫持对象的属性,而 Proxy 是直接代理对象。 由于
Object.defineProperty
只能对属性进行劫持,需要遍历对象的每个属性,如果属性值也是对象,则需要深度遍历。而 Proxy 直接代理对象,不需要遍历操作。2. Object.defineProperty对新增属性需要手动进行 Observe。 由于
Object.defineProperty
劫持的是对象的属性,所以新增属性时,需要重新遍历对象,对其新增属性再使用Object.defineProperty
进行劫持。参考阅读