2013-05-06 48 views

回答

2

ClojureScript中的所有宏都必須實現爲Clojure。

defprotocol在這個文件的796行實現:

https://github.com/clojure/clojurescript/blob/master/src/clj/cljs/core.clj#L796

請注意,這個文件是一個Clojure的文件,而不是ClojureScript文件。

+0

謝謝!順便說一句...你知道js *宏是如何工作的嗎?我在cljs.core代碼中看到它,但沒有定義 – zcaudate 2013-05-06 20:49:53

+0

js *不是一個宏,它是一種特殊的形式。它用於在需要時允許ClojureScript下降到Javascript。在[本視頻]中(http://www.youtube.com/watch?v=5edtbpVOOBI&feature=player_detailpage#t=1681s)Chris Houser談了一點。 – 2013-05-06 21:19:06

+1

實現js *的代碼在這個文件中:[analyzer.clj](https://github.com/clojure/clojurescript/blob/master/src/clj/cljs/analyzer.clj#L826) – 2013-05-07 00:52:44