2
以一个Person类与具体属性,又具有其自身的属性以下(CoffeeScript的)例如:的Javascript Object.defineProperty设置方法触发属性更改
class Person
constructor: ->
details =
name: ''
age: 0
Object.defineProperty this, 'details',
enumerable: yes
get: => details
set: (value) =>
console.log 'set details:', value
details = value
p = new Person
# does NOT trigger details set()
p.details.name = 'Simon'
# DOES trigger details set(), but takes a bit of effort...
details = p.details
details.name = 'Someone else'
p.details = details
很显然,如果我只需将名称和年龄定义为Person类的属性即可避免此问题,但这仅仅是一个示例。
有什么简单的方法让我的细节set()方法在其属性发生更改时触发?