gpt4 book ai didi

debugging - ClojureScript 中的 js/console.log

转载 作者:行者123 更新时间:2023-12-03 07:28:46 24 4
gpt4 key购买 nike

我想用 ClojureScript 实现一个函数来简化 js/console.log像这样:

  (defn log [& args]
(apply js/console.log args))

调用它: (log "foo" "bar")抛出: TypeError: Illegal invocation
但这有效: (js/console.log "foo" "bar")
问题是什么 ?

最佳答案

js/something用于访问 js 对象,但您不应该在此之后嵌套点,因为它不是 clojure 兼容的语法,它将被删除。在旧版本的编译器 (2138) 中,您的代码可以工作,但在较新版本的编译器中,它可能已被弃用。您使用的是哪个版本?

正确的方法是使用简单的 js 互操作,如下所示:[注意:请参阅下面来自 ClojureScript 首席开发人员 David Nolen 的评论]

(defn log [& args] (apply (.-log js/console) args))

甚至更短,因为 console.log 已经是可变参数(只需创建一个别名):
(def log (.-log js/console))

关于debugging - ClojureScript 中的 js/console.log,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24239144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com