Home > 技術 > (function(){})()の代わりにnew function(){}って方法もあるよ

(function(){})()の代わりにnew function(){}って方法もあるよ

だいたいは①の方法で即時実行な無名関数を作ると思うんですが、②みたいに書くこともできる。
でもボクはやっぱり①の書き方のほうが好きだな〜。

ただし、②の使い方にはちょっと気をつけないといけないです。
というのも②はfunctionをnewしちゃっているので、この関数はコンストラクタになってしまうこと。
なので以下のようにその関数が属するオブジェクトが変化してしまします。

もうちょい分かりやすく書くと以下の感じ。

func2のほうはnewした段階でコンストラクタが呼び出されるので、thisが代入先のobjに切り替わる。

ということでやはりnew function(){}よりも(function(){})()のほうが無難そうですねw
jQueryなんかもコード全体を(function(){})()で囲って、スコープを関数内に閉じ込めたりしてるし。(理由になってない!)

Trackback:1

TrackBack URL for this entry
http://hisasann.com/cgi-bin/mt/mt-tb.cgi/1130
Listed below are links to weblogs that reference
(function(){})()の代わりにnew function(){}って方法もあるよ from HouseTect, JavaScriptな情報をあなたに
[JavaScript](function(){})() と new function(){} from inamenaiの日記 2008-09-26 (金) 14:30
だいたいは1.の方法で即時実行な無名関数を作ると思うんですが、2.みたいに書くこともできる。でもボクはやっぱり1.の書き方のほうが好きだな〜。 // 1...

Home > 技術 > (function(){})()の代わりにnew function(){}って方法もあるよ

Tag cloud
月別アーカイブ
Powered by
Powered by
Movable Type Commercial 4.261

Page Top