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 という方は是非とも覚えておきたいテクニックですね。
投稿者 KJ : 2007年04月05日 10:05
|
![]()
間違いの指摘をしていただける方はメールでお願いします
最新のブログ記事
- Facebook風のサムネイル付きサジェストボックスを実装するサンプル
- 2009年7月3日 管理人のブックマーク
- PHPとCSSで動的に綺麗なパーセンテージグラフを描画サンプル
- 普通の写真をすばらしいアートにするためのPhotoshopチュートリアル集
- シマシマの見やすいテーブルを作成するMooToolsプラグイン「ZebraTable」
- 2009年7月2日 管理人のブックマーク
- 「フォローしてね」を表すTwitterアイコン集
- シンプルなTwitter検索を行うためのPHPスクリプト
- PHPのcURLを使ってできる便利なサンプル集
- 2009年7月1日 管理人のブックマーク
- iPhone3.0の緯度経度APIで移動履歴を地図描画するサンプル





















