在 clojureScript 中有以下多元函数
(defn sum [& xs] (reduce + xs))
可以通过 (sum 4 6 9)
或使用 (apply sum [4 6 9])
调用,这会产生相同的结果。
如何使用 native JavaScript 函数完成此操作,例如:console.log
。
(apply js/console.log [1 2 3])
这会产生以下错误:
#object[TypeError TypeError: 'log' called on an object that does not implement interface Console.]
最佳答案
有些浏览器总是假设this
是某个对象,你可以在js中使用.bind
来临时修复。
; 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?
关于javascript - 在原生 JavaScript 函数上使用 apply,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39053968/