这是我的代码,在 shadow-cljs 上运行。
(ns app.main
(:require [goog.structs.LinkedMap]))
(extend-type goog.structs.LinkedMap
cljs.core/IFn
(-invoke
([m k] (.get m k nil))
([m k not-found] (.get m k not-found))))
(def m (goog.structs.LinkedMap.))
(.set m 34 :foo)
(println (m 34))
错误信息如下:#object[TypeError TypeError: app.main.m is not a function]
但是我跑了(type m)
,结果如下:#object[Function]
,这确实是一个函数。