要開始來在 ADE 裡寫點 javascript 了,第一個碰到的問題就是,在 javascript 裡怎麼做 include guard搜尋 Google 沒找到答案,只好自己來。靠《JavaScript - a free online quick reference by VisiBone》找到這條語法:

var u; /* not assigned */ assert(typeof(u) == "undefined");       /* not defined */  assert(typeof(x) == "undefined");

正好適合來做 javascript 版的 include guard。為了測試,寫了一個 js_inc_guard.js 檔如下:

if (typeof(JS_INC_GUARD_JS_INCLUDED) == "undefined") {    var JS_INC_GUARD_JS_INCLUDED = true;    alert("JS_INC_GUARD_JS_INCLUDED");}

以及一個 js_inc_guard.html 檔如下:

<html><head><title>Demo: javascript include guard</title><script src="js_inc_guard.js"></script><script src="js_inc_guard.js"></script></head><body></body></html>

FirefoxInternet Explorer 上測試後,果然非常正確,儘管 js_inc_guard.js 被 include 了兩次,但只有一個 alert() 視窗跑出來。

Javascript include guard 技法完成。