◆ getter と setter を使って同じ実体を読み書きするだけ
◆ PHP の & 参照みたいな動きができる
◆ プロパティなのでローカル変数はムリ (グローバル変数はOK)

普段あまりつかわない getter と setter を使ってみます

特に複雑なことしてるわけじゃないですが getter と setter で読み書きする実体を共有させることで 別のオブジェクトのプロパティを共有してるように見せかけられます
var defineSharedValue = function(){
var store = {}
var getter = function (id){return function(){return store[id]}}
var setter = function (id){return function(val){return store[id]=val}}

return function(obj, property, id){
Object.defineProperty(obj, property, {set: setter(id), get: getter(id)})
}
}()

var obj1 = {a:12}
var obj2 = {x:88}

defineSharedValue(obj1, "b", "abcde")
defineSharedValue(obj2, "y", "abcde")

obj1.b // undefined
obj2.y // undefined
obj1.b = 12
obj1.b // 12
obj2.y // 12
obj2.y = 34
obj1.b // 34

使うときは関数を通さないでプロパティを扱ってるだけなのに 変更すると他の変数まで変更されてるので参照つけてるようなことができます
何かに使えそうです 具体的にはよくわからないですが 何かにです