In clojureScript the following multi-arity function
(defn sum [& xs] (reduce + xs))
can be either called via (sum 4 6 9)
or by the use of (apply sum [4 6 9])
which yields the same result.
How can this be done with a native JavaScript function, such as: console.log
.
(apply js/console.log [1 2 3])
This, yields the following error:
#object[TypeError TypeError: 'log' called on an object that does not implement interface Console.]
Some browsers always assuming the this
is certain object, you can use .bind
in js for temporal fix.
; you can use .bind on any function
(def d (.bind (.-log js/console) js/console))
(def ms ["aaa" "bbb" "barbarbar"])
(mapv d ms)
What does this statement do? console.log.bind(console)
Why do js functions fail when I assign them to a local variable?