繁体   English   中英

ClojureScript:如何通过原型向JS对象添加方法?

[英]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-typedefprotocol ,以及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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM