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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions