Skip to content

JS 监听对象属性的改变 #29

@Hongbusi

Description

@Hongbusi
// 假设有一个 user 对象

// 1. 在 ES5 中可以通过 Object.defineProperty 来实现已有属性的监听
Object.defineProperty(user, 'name', {
  set: function (key, value) {
    
  }
})
// 缺点:如果 id 不在 user 对象中,则不能监听 id 的变化

// 2. 在 ES6 中可以通过 Proxy 来实现
const user = new Proxy({}, {
  set: function (target, key, value, receiver) {
        
  }
})
// 这样即使有属性在 user 中不存在,通过 user.id 来定义也同样可以这样监听这个属性的变化。

Metadata

Metadata

Assignees

No one assigned

    Labels

    JSjavascript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions