ClojureScript:如何通过prototype向JS对象添加方法?
我正在尝试向现有JavaScript系统添加一些功能。然后再次从JavaScript中使用(而不是在ClojureScript命名空间中)。也许这是不可能的 以下是我想做的简化:ClojureScript:如何通过prototype向JS对象添加方法?,clojure,clojurescript,Clojure,Clojurescript,我正在尝试向现有JavaScript系统添加一些功能。然后再次从JavaScript中使用(而不是在ClojureScript命名空间中)。也许这是不可能的 以下是我想做的简化: // JavaScript String.prototype.foo = function() { return "bar"; } # CoffeeScript String::foo = -> "bar" 我希望能够运行上面的脚本,然后从代码中的其他地方调用它 我尝试过处理extend type和d
// JavaScript
String.prototype.foo = function() {
return "bar";
}
# CoffeeScript
String::foo = ->
"bar"
我希望能够运行上面的脚本,然后从代码中的其他地方调用它
我尝试过处理extend type
和defprotocol
,以及export
,但似乎没有任何东西暴露我的foo函数
这可能是一个设计决策,ClojureScript在这里对我不起作用,但我只是想确保我没有忽略任何东西。可以这样做:
(set! (.-foo (.-prototype js/String)) (fn [] "bar"))
或者你可以用。。糖:
(set! (.. js/String -prototype -foo) (fn [] "bar"))
测试和工作。要是在某个地方的文档中就好了。:)是的,有人需要为常见的JavaScript互操作表单创建一个ClojureScript页面。你能解释一下其中的一些功能吗?。令人困惑。这会让你脱离名称空间吗?不,这只是深度属性访问的糖。我遇到了一些有用的互操作和通用cljs表单。