- 2008-09-23 (火)
- 技術
だいたいは①の方法で即時実行な無名関数を作ると思うんですが、②みたいに書くこともできる。
でもボクはやっぱり①の書き方のほうが好きだな〜。
ただし、②の使い方にはちょっと気をつけないといけないです。
というのも②はfunctionをnewしちゃっているので、この関数はコンストラクタになってしまうこと。
なので以下のようにその関数が属するオブジェクトが変化してしまします。
もうちょい分かりやすく書くと以下の感じ。
func2のほうはnewした段階でコンストラクタが呼び出されるので、thisが代入先のobjに切り替わる。
ということでやはりnew function(){}よりも(function(){})()のほうが無難そうですねw
jQueryなんかもコード全体を(function(){})()で囲って、スコープを関数内に閉じ込めたりしてるし。(理由になってない!)
【関連する記事】
- Newer: UTF-7でスクリプトを実行させるXSSについて
- Older: canvasを使って波紋が広がるripple.js作りました
Comments:0
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, JavaScripter Blog
- [JavaScript](function(){})() と new function(){} from inamenaiの日記 2008-09-26 (金) 14:30
- だいたいは1.の方法で即時実行な無名関数を作ると思うんですが、2.みたいに書くこともできる。でもボクはやっぱり1.の書き方のほうが好きだな〜。 // 1...

