あと味スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。読者です読者をやめる読者になる読者になるあと味たくさん情報を食べて、たくさん発信すると、あとになって味わい深い。Partsを読み返したりした結果、newについて調べたいという衝動にかられましたので、その調べた結果を書いてみたいと思います。newを調べようと思ったキッカケを整理まずは、そのキッカケから整理します。chikuraさんのコメントより押さえるべきポイントは、new演算子の際に何が行われるか?だと思うので、こちらのページもぜひ読んでみてください。Moonhttp://nanto.asablo.jp/blog/2005/10/24/118564JavaScriptにはクラスという機能はなくて、JavaやC++のクラスのような見かけを実現する為のコンストラクタ関数とnew演算子の組み合わせがある為に、ちょっとややこしいことになってます。これまで、newがなんたるかと考えたことなんてありませんでしたが、new演算子の際に何が行われるか?が押さえるべきポイントとのこと。クラスとしての見かけを実現するためにnewがあるそうです。弾さんの言及記事よりJavaScriptの最大の特徴が、これでしょう。属する」のではなく「プロトタイプ・オブジェクトという親から生み出される」のです。Parts」において、new演算子を「悪いパーツ」に分類しているのもそれが理由です。Classに慣れていると実にへんてこに思えますが、プロトタイプ継承というのはまさに生物がやっていることで、「自然」に考えればそれほど奇異でもなく、私自身最近はほとんどnew演算子を使っていません。Partsは購入して読みましたが、「悪いパーツ」は悪いんだから使わないし、見なくていいだろうとメチャクチャな論理で無視していたことを思い出しましたよorz...しかも、ほとんどnewを使わないとのこと。Partsを読み返すP133new演算子の持つ問題に対するもっとも良い方法は、newをまったく使わないことである。その他、newを使った時の問題点が書いてあります。使わないとはどういったことか。無性に気になったので、調べてみることにしました。以下、FireBugで調べた結果です。試したい方は、コンソールにコピペしてお試しください。サンプルコードと考察まずはnewを使った通常の処理を書く。jdg予想どおりの動き。ex2つぎに、単純にnewを外してみる。undefinedだめでした。いけたらこれで話終わっちゃうけど。ex3ex2のはただの関数オブジェクトなので、値を返すためにreturnを加えてみる。jdgよし、うまくいった。これで、newを一切使わず実装ができる。単純な話ではありません。ex4実はこれ、すごく大変なことになってます。さっきの値の確認の処理でthisを除いて実行してみます。Partsの中で、newを使うべきでないとしている理由がこれです。newを付けるべきところに付けないまま実行すると、グローバル空間にプロパティを追加してしまいます。実は、ex2でも同様の問題が発生してしまっています。ex5ex1とex2のthisの値を確認してみます。Objectex1のthisの値は、Object。Windowあ、Windowだ。グローバル空間にプロパティを追加してしまうのか。Blog();newがあるのとないのとで、意味が全然変わってしまう。そもそもnewって何するの?で、newって何するの?ということで、chikuraさんにコメントで教えていただいた以下の記事をよく読んでみることにしました。演算子の動作は大まかにいって以下のとおりである。)新しいオブジェクトを作る。