A JavaScript-interop library for ClojureScript.
A JavaScript-interop library for ClojureScript.
(apply obj k arg-array)
Apply function k
of obj
, binding this
to obj
.
(j/apply o :someFunction #js [arg1 arg2])
(j/apply o .-someFunction #js [arg1 arg2])
Apply function `k` of `obj`, binding `this` to `obj`. ``` (j/apply o :someFunction #js [arg1 arg2]) (j/apply o .-someFunction #js [arg1 arg2]) ```
(apply-in obj ks arg-array)
Apply function nested at path
with arg-array
, binding this
to its parent object.
(j/apply-in o [:x :someFunction] arg1 arg2)
Apply function nested at `path` with `arg-array`, binding `this` to its parent object. ``` (j/apply-in o [:x :someFunction] arg1 arg2) ```
(apply-to-bodies f expr)
For recursive lit*, ignores known clj syntax
For recursive lit*, ignores known clj syntax
(assoc! obj & keyvals)
Sets key-value pairs on obj
, returns obj
.
(j/assoc! o :x 10)
(j/assoc! o .-x 10)
Sets key-value pairs on `obj`, returns `obj`. ``` (j/assoc! o :x 10) (j/assoc! o .-x 10) ```
(assoc-in! obj ks v)
Mutates the value in a nested object structure, where ks is a sequence of keys and v is the new value. If any levels do not exist, objects will be created.
(j/assoc-in! o [:x :y] 10)
(j/assoc-in! o [.-x .-y] 10)
Mutates the value in a nested object structure, where ks is a sequence of keys and v is the new value. If any levels do not exist, objects will be created. ``` (j/assoc-in! o [:x :y] 10) (j/assoc-in! o [.-x .-y] 10) ```
(call k)
(call obj k & args)
(call obj k & args)
Call function k
of obj
, binding this
to obj
.
(j/call o :someFunction arg1 arg2)
(j/call o .-someFunction arg1 arg2)
Call function `k` of `obj`, binding `this` to `obj`. ``` (j/call o :someFunction arg1 arg2) (j/call o .-someFunction arg1 arg2) ```
(call-in obj ks & args)
Call function nested at path
with args
, binding this
to its parent object.
(j/call-in o [:x :someFunction] arg1 arg2)
Call function nested at `path` with `args`, binding `this` to its parent object. ``` (j/call-in o [:x :someFunction] arg1 arg2) ```
(clj-lit x)
lit for Clojure target, only handles ~@unquote-splicing
lit for Clojure target, only handles ~@unquote-splicing
(contains? obj k)
Returns true if obj
contains k
.
(j/contains? o :k)
(j/contains? o .-k)
Returns true if `obj` contains `k`. ``` (j/contains? o :k) (j/contains? o .-k) ```
(defn & args)
defn
with argument destructuring that supports js property and array access.
Use ^:js metadata on binding forms to invoke.
`defn` with argument destructuring that supports js property and array access. Use ^:js metadata on binding forms to invoke.
(extend! obj)
(extend! obj x)
(extend! obj x & more)
alias for merge!
alias for merge!
(fn & args)
fn
with argument destructuring that supports js property and array access.
Use ^:js metadata on binding forms to invoke. Eg/
(fn [^:js {:keys [a]}] …)
`fn` with argument destructuring that supports js property and array access. Use ^:js metadata on binding forms to invoke. Eg/ (fn [^:js {:keys [a]}] …)
(get k)
(get obj k)
(get obj k not-found)
Returns the value mapped to key, not-found or nil if key not present.
(j/get o :k)
(j/get o .-k)
Returns the value mapped to key, not-found or nil if key not present. ``` (j/get o :k) (j/get o .-k) ```
(get-in ks)
(get-in obj ks)
(get-in obj ks not-found)
Returns the value in a nested object structure, where ks is a sequence of keys. Returns nil if the key is not present, or the not-found value if supplied.
(j/get-in o [:x :y] :fallback-value)
(j/get-in o [.-x .-y] :fallback-value)
Returns the value in a nested object structure, where ks is a sequence of keys. Returns nil if the key is not present, or the not-found value if supplied. ``` (j/get-in o [:x :y] :fallback-value) (j/get-in o [.-x .-y] :fallback-value) ```
(let bindings & body)
let
with destructuring that supports js property and array access.
Use ^:js metadata on the binding form to invoke. Eg/
(let [^:js {:keys [a]} obj] …)
`let` with destructuring that supports js property and array access. Use ^:js metadata on the binding form to invoke. Eg/ (let [^:js {:keys [a]} obj] …)
(lit form)
Recursively converts literal Clojure maps/vectors into JavaScript object/array expressions (using j/obj and cljs.core/array)
Recursively converts literal Clojure maps/vectors into JavaScript object/array expressions (using j/obj and cljs.core/array)
(lit* x)
(lit*
{:as opts :keys [keyfn valfn env deep?] :or {keyfn identity valfn litval*}}
x)
Recursively converts literal Clojure maps/vectors into JavaScript object/array expressions
Options map accepts a :keyfn for custom key conversions.
Recursively converts literal Clojure maps/vectors into JavaScript object/array expressions Options map accepts a :keyfn for custom key conversions.
(lookup obj)
Wraps obj
with an ILookup implementation, to support reading/destructuring. Does not support renamable keys.
(let [{:keys [a b c]} (j/lookup o)]
...)
Wraps `obj` with an ILookup implementation, to support reading/destructuring. Does not support renamable keys. ``` (let [{:keys [a b c]} (j/lookup o)] ...) ```
(merge! obj)
(merge! obj x)
(merge! obj x & more)
Extends obj
with the properties of one or more objects, overwriting
existing properties, moving left to right. Returns obj
.
An empty starting object is provided if obj
is nil.
(j/extend! o other)
(j/extend! o other #js{:x 1})
Not IE6-friendly
Extends `obj` with the properties of one or more objects, overwriting existing properties, moving left to right. Returns `obj`. An empty starting object is provided if `obj` is nil. ``` (j/extend! o other) (j/extend! o other #js{:x 1}) ``` Not IE6-friendly
(obj & keyvals)
Create JavaScript object from an even number arguments representing interleaved keys and values.
(obj :a 1 :b 2 .-c 3 .-d 4)
Create JavaScript object from an even number arguments representing interleaved keys and values. ``` (obj :a 1 :b 2 .-c 3 .-d 4) ```
(push!)
(push! array)
(push! array v)
(push!)
(push! array)
(push! array x)
Appends v
to array
and returns the mutated array.
(j/push! arr 10)
Appends `v` to `array` and returns the mutated array. ``` (j/push! arr 10) ```
(select-keys obj ks)
Returns an object containing only those entries in o
whose key is in ks
.
(j/select-keys o [:a :b :c])
(j/select-keys o [.-a .-b .-c])
Returns an object containing only those entries in `o` whose key is in `ks`. ``` (j/select-keys o [:a :b :c]) (j/select-keys o [.-a .-b .-c]) ```
(some-or x y)
Like or
but switches on some?
instead of truthiness.
Like `or` but switches on `some?` instead of truthiness.
(unchecked-get obj k)
(unchecked-get obj k not-found)
(unchecked-get obj k)
(unshift! array v)
(unshift! array x)
Prepends v
to a
and returns the mutated array.
(j/unshift! arr 10)
Prepends `v` to `a` and returns the mutated array. ``` (j/unshift! arr 10) ```
(update! obj k f & args)
'Updates' a value in a JavaScript object, where k is a key and f is a function that will take the old value and any supplied args and return the new value, which replaces the old value. If the key does not exist, nil is passed as the old value.
(j/update! o :a + 10)
(j/update! o .-a + 10)
'Updates' a value in a JavaScript object, where k is a key and f is a function that will take the old value and any supplied args and return the new value, which replaces the old value. If the key does not exist, nil is passed as the old value. ``` (j/update! o :a + 10) (j/update! o .-a + 10) ```
(update-in! obj ks f & args)
'Updates' a value in a nested object structure, where ks is a sequence of keys and f is a function that will take the old value and any supplied args and return the new value, mutating the nested structure. If any levels do not exist, objects will be created.
(j/update-in! o [:x :y] + 10)
(j/update-in! o [.-x .-y] + 10)
'Updates' a value in a nested object structure, where ks is a sequence of keys and f is a function that will take the old value and any supplied args and return the new value, mutating the nested structure. If any levels do not exist, objects will be created. ``` (j/update-in! o [:x :y] + 10) (j/update-in! o [.-x .-y] + 10) ```
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close