Tôi đang tìm cách xác định các hàm Clojurescript trong không gian tên chung của Javascript lúc biên dịch. Những gì tôi có nghĩa là bằng cách biên dịch-thời gian là tôi muốn trình biên dịch Clojurescript để sản lượng này: function some_fn() { }
. Tôi biết rằng điều này không phải là thành ngữ và mọi thứ nên nằm trong một không gian tên nhưng môi trường mà tôi buộc tôi phải làm điều này. Vì vậy, lý tưởng giống như (defn ^:global some-fn [])
sẽ hoạt động tương tự như cách hoạt động của :export
nhưng bỏ qua không gian tên.Làm thế nào để xác định một hàm clojurescript trong không gian tên chung javascript tại thời gian biên dịch?
Tôi biết phương pháp thời gian chạy để xác định các chức năng toàn cầu bằng goog.global, ví dụ: (set! goog.global.someFunction some-clojure-fn)
nhưng điều này không hoạt động trong môi trường của tôi.
Bạn có biết rằng nếu bạn chú thích hàm của mình bằng '^: export', bạn có thể tham chiếu trực tiếp từ javascript? ví dụ. 'my.name.space.some_fn()' –
Có tôi. Tôi sợ rằng tôi thực sự muốn nó là một chức năng cấp cao nhất bởi vì tôi không thể đối phó với tên stuff.space.prefix. –
Câu trả lời của Kanaka là những gì bạn đang làm sau đó. Cửa sổ là nơi công cụ cấp cao nhất hoạt động. –