接下來看testapi這個工程,這個工程的編譯設置基本與javascriptcore相同,最終生成testapi.exe。testapi.exe是一個測試javascript導出api的工程,這個工程就testapi.c和testapi.js兩個文件,如下圖:
雖然只有兩個文件,卻可以從這兩個文件中學到如何使用javascriptcore這個js引擎,例如如何向js引擎注入對象和函數。可能很多人看了testapi.js這個文件函數會產生一個疑問,爲什麼不用window對象?對於js引擎而言,根本不存在window這個對象,window對象是DOM模型裏面定義的對象,這個對象是瀏覽器引擎(webcore)向js引擎(javascriptcore)注入的,至於如何注入的windows等對象則會在後面介紹webcore工程時會介紹。
jsc工程編譯設置基本也與javascriptcore相同,最終生成jsc.exe。jsc是一個命令行的js解釋器,與其類似的有vb解釋器,lua解釋器等,運行後如下:
如果大家需要一個js解釋器,完全可以直接改造jsc這個工程。當然,也有其他選擇,例如node.js和chrome裏面使用的v8。
至此,JavaScriptCore Folder下面的工程介紹完了,後面接着介紹WebCore Folder下面的工程。