Observable icon indicating copy to clipboard operation
Observable copied to clipboard

Observable object

Open zdenko opened this issue 6 years ago • 1 comments

While working on a project of mine I added a few methods for the observable object, which I find useful.

Proxy object properties:

obj = Observable 
  a: 1

assert.equal obj.a, obj().a

obj.a = 2
assert.equal obj.a, obj().a

Observable properties:

obj = Observable 
  a: Observable 1

assert.equal obj.a, obj().a()

obj.a 2
assert.equal obj.a, 2
assert.equal obj().a(), 2

obj.a = 3
assert.equal obj.a, 3
assert.equal obj().a(), 3

Extend method:

obj = Observable 
  a: 1

obj.extend b: 2   # alias: obj.assign b: 2
assert.equal obj.b, 2
assert.equal obj.b, obj().b

Remove method:

obj = Observable 
  a: 1
  b: 2

obj.remove "b"
assert.equal obj.b, undefined

Proxy object methods:

obj = Observable 
  a: 1
  b: 2

assert.deepEqual obj.keys, ["a", "b"]
assert.deepEqual obj.values, [1, 2]
assert.deepEqual obj.entries, [["a", 1], ["b", 2]]

zdenko avatar Feb 24 '18 22:02 zdenko