(defn sprintf [& args]
(with-out-str
(apply printf args)
*out*))
(Chrome)
Uncaught TypeError: Cannot read property 'cljs$lang$maxFixedArity' of undefined
我做错了什么?
答案 0 :(得分:20)
错误:
Uncaught TypeError: Cannot read property 'cljs$lang$maxFixedArity' of undefined
...也许是历史上最令人困惑的错误信息,实际上意味着:
你在一个不存在(或者不需要)的函数上调用
apply
。
摇滚,未来的Google员工!
答案 1 :(得分:1)
(def sprintf format)
似乎更容易。
答案 2 :(得分:0)
我没有收到您看到的错误,我收到错误“No * print-fn * fn为评估环境设置”。
如果您在https://github.com/clojure/clojurescript/blob/master/src/cljs/cljs/core.cljs浏览来源,则会在* print-fn *的文档中找到此消息:
“每个运行时环境都提供了一种不同的打印输出方式。 任何* print-fn *函数都将被传递 字符串应该打印。“
所以我建议你玩* print-fn * - 或者@amalloy建议,直接使用'format'。
(顺便说一下,如果你看https://github.com/clojure/clojurescript/wiki/Differences-from-Clojure,则表示“* out *目前尚未实施”。)