簡體   English   中英

Javascript到ClojureScript轉換

[英]Javascript to ClojureScript Conversion

我想將以下行轉換為Cljs,

var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy:  true });

相應的地圖是什么,

{ enableHighAccuracy:  true }

在ClojureScript? enableHighAccuracy是一個符號嗎?

如果你正在使用一個庫的互操作(例如geolocation,在你的情況下),並且它需要一個JavaScript對象,你需要傳遞一個標准的JavaScript對象,而不是Clojure映射。

您可以使用不帶參數的js-obj函數在ClojureScript中構造其中一個。 這將返回一個沒有字段的空JavaScript; 然后,您可以使用aset函數添加字段。

所以你的代碼將是這樣的:

(let [arg (js-obj)]
  (aset arg "enableHighAccuracy" true)
  (.watchPosition (.geolocation navigator) on-success on-error arg))

如果您發現自己做了很多事情,那么編寫一個實用程序函數可以很容易地使用您喜歡的任何默認值將ClojureScript地圖轉換為JavaScript對象; 這個功能的一個例子可以在這個要點中找到; https://gist.github.com/1658431

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM