先日諸事情により、今更感ただようクラシックASPを触ることがありました。
例のごとくなんの資料もなく、わかる人も誰もいないという状況なので
とりあえず、触るにあたってどのaspファイルをインクルードすべきか
とインクルードの継承関係を調査してみると・・・
末端のファイルは、なんかわからんけど共通っぽいのとりあえずインクルードしとけって感じになってて、案の上というか、まったく整理されておらず循環参照おこしまくり。
これじゃ、グローバルな定数とかいれれんじゃんとか思ってみてみると
やっぱどこも定数つかってない・・。
あほプロジェクトの地雷その1である恐怖の区分直書を見事に踏んでます。
一応試しに、Dimやら、Const 突っ込んでみると、二重定義のエラー発生・・・・。
なんじゃこりゃーという腹立たしさもありますが
ちょっと気になったのは、関数も2重(3重、4重?)に定義されてるのに
それはOKなのかということ。
以前も書いたいけど
VBScriptって、.net以前のVbやvba知ってりゃ9割は問題ないのだけど
それゆえに先入観でいろいろと罠にはまってしまいます。
ということで前置き長かったけど、関数の二重定義を調査してみました。
下記ソースをhtaファイルとして保存して、実行するとよくわかりますが
<head>
<title>Untitled</title>
<script language="VBScript">
Sub testSub()
msgbox "aaa"
end Sub
Sub testSub()
msgbox "bbb"
end Sub
</script>
</head>
<body>
<button onClick='testSub()' >同一Sub名テスト</button>
</body>
</html>
落ちずに、呼ばれるtestSubは問題なく動作し
alertの「bbb」が表示されます。
0 件のコメント :
コメントを投稿