[英]ClojureScript: How to add method via prototype to JS Object?
我正在尝试为现有的JavaScript系统添加一些功能。 然后再次从JavaScript中使用(而不是在ClojureScript命名空间中)。 也许这是不可能的?
这是我想要做的简化:
// 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"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.