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

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

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

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

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

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

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

【関連する記事】

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info

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...

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

Tag cloud
Categories
月別アーカイブ
このブログについて
author:hisasann

description:フリーランスで仕事しているプログラマーです。
最近はJavaScript、Rails、Java(Struts+Spring)なんかをいろいろといじっています。
今やってみたいのはFlashやActionScriptかな。
また誕生して半年になる子供の成長を見守るパパでもあります。

日々の日記 :

他に運営しているブログ:

利用しているWebサービス :
最近のコメント
Powered by
Powered by
Movable Type 3.35

Page Top