4
我有一個代碼庫,可以大量使用get
和get-in
嵌套窗體。我希望能夠使用原生JavaScript對象,而不用(很多)代碼重寫。在ClojureScript中擴展協議以從本機js對象獲得價值
js> cljs.user.o = {foo: 42} // in js console
cljs.user> (get o "foo") ; => 42 ; in cljs console
因爲我只查詢形式,但不對其進行修改,我認爲這將足以實現get
(其中get-in
依賴)。這是我的嘗試,
(extend-protocol ILookup
js/Object
(-lookup [m k] (aget m k))
(-lookup [m k not-found (or (aget m k) not-found)))
它似乎工作,但它以一種奇怪的方式打破了很多事情。
只是一個完美的答案,我不清楚的問題:) –
@tomconnors無需添加文本供審閱者刪除;你可以加一些' 的 –
哦,沒有想到這一點,謝謝! – tomconnors