# observable binding

**URL:** <https://es.discourse.group/t/observable-binding/57>\
**Category:** 💡 Ideas\
**Created:** [May 1, 2019, 6:39pm UTC](https://es.discourse.group/t/observable-binding/57 "2019-05-01T18:39:28Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![hemanth](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/hemanth/32/33_2.png) [@hemanth](https://es.discourse.group/u/hemanth)\
**Post date:** [May 1, 2019, 6:39pm UTC](https://es.discourse.group/t/observable-binding/57/1 "2019-05-01T18:39:28Z")

</div>

The idea of this proposal is to have observable bindings in JS.

Please find the [explainer.md](https://github.com/hemanth/observable-binding/blob/5331e96e1d0b573807b98141ff36e57d23c1653d/explainer.md)

P.S: This shall be polished based on the feedback and suggestions this thread shall receive.

---

<div class="post-metadata">

**Author:** ![ljharb](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/ljharb/32/8_2.png) [@ljharb](https://es.discourse.group/u/ljharb)\
**Post date:** [May 1, 2019, 6:57pm UTC](https://es.discourse.group/t/observable-binding/57/2 "2019-05-01T18:57:07Z")

</div>

This seems related to [https://github.com/rbuckton/proposal-refs](https://github.com/rbuckton/proposal-refs)

---

<div class="post-metadata">

**Author:** ![jridgewell](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/jridgewell/32/18_2.png) [@jridgewell](https://es.discourse.group/u/jridgewell)\
**Post date:** [May 1, 2019, 7:19pm UTC](https://es.discourse.group/t/observable-binding/57/3 "2019-05-01T19:19:39Z")

</div>

Is this meant to be the [destiny operator](http://paulstovell.com/blog/reactive-programming)?

---

<div class="post-metadata">

**Author:** ![hemanth](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/hemanth/32/33_2.png) [@hemanth](https://es.discourse.group/u/hemanth)\
**Post date:** [May 1, 2019, 7:26pm UTC](https://es.discourse.group/t/observable-binding/57/4 "2019-05-01T19:26:39Z")

</div>

Almost, pretty much influenced by that post.

---

<div class="post-metadata">

**Author:** ![devsnek](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/devsnek/32/100_2.png) [@devsnek](https://es.discourse.group/u/devsnek)\
**Post date:** [May 2, 2019, 8:12pm UTC](https://es.discourse.group/t/observable-binding/57/5 "2019-05-02T20:12:56Z")

</div>

I've played with references a few times in engine262 (`a = &b`, `*a = 5`, etc), but I could never really find a real use case for it. I found myself making out parameters, but since js can return complex types from functions it didn't seem that needed.

destiny operator feels like it should be an arrow function to me, I'm curious to see more about what it enables or makes easier.

---

<div class="post-metadata">

**Author:** ![jridgewell](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/jridgewell/32/18_2.png) [@jridgewell](https://es.discourse.group/u/jridgewell)\
**Post date:** [May 2, 2019, 8:34pm UTC](https://es.discourse.group/t/observable-binding/57/6 "2019-05-02T20:34:54Z")

</div>

Svelte 3's release is where I first saw mention of the destiny operator. See [https://youtu.be/AdNJ3fydeao?t=800](https://youtu.be/AdNJ3fydeao?t=800).

It seems like "this is immutable to consumers, but I will change automatically if my dependencies update". Which also makes the destiny operator viral, it's likely all consumers of a bound variable will themselves want to be bound to that variable to receive updates.
