2014-02-26 90 views

回答

6

繼接受SO方式,以檢查是否存在一個js對象屬性使用方法「hasOwnProperty」,如下所示,我們可以把它翻譯:

(def foo (js-obj "bar" "baz")) 
(.hasOwnProperty foo "bar") 
;; => true 
(.-bar foo) 
;;=> "baz" 
(.hasOwnProperty foo "car") 
=> false 
(.-car foo) 
;;=> nil 
+0

謝謝,接受了這個答案。 – bluegray

7

存在?爲added在ClojureScript檢查undefined

(ns my.ns 
    (:require-macros [cljs.core :refer [exists?]])) 

    (if (exists? js/jQuery) 
     (println "jQuery")) 
     (println "no jQuery")) 

你也可以使用agetnil?避免調用JavaScript函數:

(def scope (js-obj)) 
(aset scope "var1" "Value") 
(aget scope "var1")    ;; "Value" 
(aget scope "anotherVar")   ;; nil 
(nil? (aget scope "anotherVar")) ;; true