JavaScript関数に関する様々なテクニック集
2007年04月05日-
Lisp? Scheme? Erlang, Haskell? Forget about them! The most widely deployed functional programming language is Javascript.
JavaScript関数に関する様々なテクニック集が紹介されていました。
まずは基本的なJavaScript関数の使い方
<script language="javascript">
function hello(who) {
alert('Hello '+who);
}
hello('world');
</script>
「Hello World」を出力。
続いては関数リテラルのシンタックスによる関数の定義。
<script language="javascript">
var hello = function (who) {
alert('Hello '+who); // outputs "Hello world"
}
hello('world');
</script>
ちょっとJavaScriptを勉強をした方はここまでは知っているはず。
続いて次のちょっと変わった使い方。
hello 変数に関数リテラルの方式で変数に関数を代入し、その関数を別の関数sayの引数にして引数を関数として扱う方法です。
<script language="javascript">
var say = function(what) {
what('say function');
}
var hello = function (who) {
alert('Hello '+who); // outputs "Hello say function"
}
say(hello);
</script>
これは面白いです。「Hello say function」 がalertされます
次もちょっとかわった使い方。
<script language="javascript">
function pushedMyButton() {
alert('you pushed my button!');
}
function doSomething() {
return pushedMyButton; // return a pointer to the pushedMyButton function
}
document.onclick=doSomething();
</script>
document.onclick イベントに関数「doSomething」を指定し、その「doSomething」が別の関数「pushedMyButton」をリターンすることで、onclick イベントに「pushedMyButton」イベントを付与する方法。
ブラウザ画面をクリックすることで pushedMyButton が実行されます。
次も興味深いです。
<script language="javascript">
var test = function () {
return "This is a String";
}
var testCopy = test; // testCopy is a pointer to the test function()
var testStr = test(); // testStr contians "This is a string"
</script>
test を関数リテラルで定義して、他の変数に代入する時、testCopy の場合だと関数ポインタとなり、testStr の場合だとtest関数の返却する文字列がそのまま代入されます。
最後の () があるかないかで挙動が変わっています。
→ その他にもいろいろなJavaScript関数の使い方について述べられています
我こそはJavaScripter という方は是非とも覚えておきたいテクニックですね。
最新のブログ記事(新着順)
- 2010年3月11日 管理人のブックマーク
- ストリートファイターみたいなゲームを作れるようになったjQuery用ゲームフレームワーク「gameQuery」
- 超カッコいい写真加工のPhotoshopチュートリアル集
- PHP、Perl、Ruby、C、C++等40以上の言語をブラウザで実行できるようになるjQueryプラグイン「Run This」
- 2010年3月10日 管理人のブックマーク
- クールなWEBホスティングサイトのレイアウトを作成するPhotoshopチュートリアル
- 478種類の使えるベクターアイコンセット
- プログラム内のデータベース処理高速化TIPS
- 2010年3月9日 管理人のブックマーク
- 用途は色々、Photoshopでリアルなセロファンテープを描画するチュートリアル


















間違いの指摘をしていただける方はメールでお願いします(クリック)


