LoginSignup
4
4

More than 5 years have passed since last update.

即時関数 javaプログラマのjavascript入門

Posted at

// 通常のやり方
// 関数を定義
function func1(id) {
    document.write(id + '<br>');
}

// 関数を実行
func1('id1');

// 即時関数の場合、関数を定義してすぐに実行できる
// 書き方は関数をカッコで囲み、後に引数を付ける
// もちろん引数無しのfunctionも可能
// 無名関数も可能
// (function(xxx){})(引数);
(function func2(id) {
    document.write(id + '<br>');
})('id2');

// function定義がスコープ外になるため、後で実行することはできない
try {
    func2('id2-2'); // これはエラーになる
} catch(e) { document.write('id2-2はエラー' + '<br>'); }

// 即時実行関数をあとで実行する場合は変数に格納する
// (でも、あまりきれいじゃない気がする)
var later;
(later = function func3(id) {
    document.write(id + '<br>');
})('id3');

later('id3-2');

■ 実行結果
id1
id2
id2-2はエラー
id3
id3-2

// 利用例としてDWRとjQuery、Prototype.jsを同時に使う場合、
// $がバッティングするのを防ぐ対応がある
// この例の場合$がバッティングしてもjQueryの$を実行できる
// jQueryはjQuery.noConflict()を使う方法もある
(function ($, id) {
    alert($(id).html());
})(jQuery, 'id1')

↑半角$がなぜかうまく入力できないため全角にしています

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4