以具有 details 属性的 Person 类的以下(咖啡脚本)示例为例,该类又具有自己的属性:
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() 方法在其属性更改时触发?