- ベストアンサー
new演算子のメリット・便利さは何でしょうか
- new演算子のメリット・便利さを解説します。
- new演算子はインスタンスを生成するために使用されます。
- new演算子を使用することで、メソッドやプロパティを持つオブジェクトを簡単に作成できます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
大雑把に言うと、「これでひとまとまりのデータとそのデータに対する処理をまとめて扱えるから」です。 この例で言うと、たとえば 鈴木 太郎 菊池 武 というような表示を、変数に入れた値を使って行う場合 Member1: var suzuki_family = '鈴木'; var suzuki_first = '太郎'; var kikuchi_family = '菊池'; var kikuchi_first = '武'; document.writeln(Member1(suzuki_family, suzuki_first)); document.writeln(Member1(kikuchi_family, kikuchi_first)); Member2: var suzuki = new Member2('鈴木', '太郎'); var kikuchi = new Member2('菊池', '武'); document.writeln(suzuki.getName()); document.writeln(kikuchi.getName()); となります。 Member1のほうは'鈴木'という値が入ったsuzuki_familyと'太郎'という値が入ったsuzuki_firstとは別の変数で、その関連を示すものは変数名だけです。それに対してMember2では'鈴木'という値と'太郎'という値がセットになっています。どちらが扱いやすいかは明らかにセットになっているMember2のほうです。 上のように短いプログラムだとその恩恵がピンと来ないかもしれませんが、ある程度以上の規模のプログラムだとこのように関連のあるデータをひとつにまとめる仕組みがないと混乱してきます。このあたりはオブジェクト指向を勉強して……と本当はいいたいのですが、はっきりいってその辺の勉強ははまると大変なので、「データをまとめて持っていられると楽になるよ、ついでにそのデータに関する操作はそのデータ自身にやらせようよ」くらいに考えておいてください。
その他の回答 (1)
- babu_baboo
- ベストアンサー率51% (268/525)
<!DOCTYPE html> <html lang="ja"> <title></title> <meta charset="utf-8"> <body> <ol> <li> <input type="text" value="0" id="A"> <input type="button" value="start" onclick="sw0.start()"> <input type="button" value="stop" onclick="sw0.stop()"> <input type="button" value="reset" onclick="sw0.reset()"> <li> <input type="text" value="0" id="B"> <input type="button" value="start" onclick="sw1.start()"> <input type="button" value="stop" onclick="sw1.stop()"> <input type="button" value="reset" onclick="sw1.reset()"> <li> <input type="text" value="0" id="C"> <input type="button" value="start" onclick="sw2.start()"> <input type="button" value="stop" onclick="sw2.stop()"> <input type="button" value="reset" onclick="sw2.reset()"> </ol> <script> /* ストップウオッチをつくりたい。 まずおもいつくのは、ぼたんがあったな。 たしか、start と stop と reset 。 えきしょうでぃすぷれーもひつようだな。 すくりぷととしては、たいまーしょりがひつようで、それをかんりするidがひつようだな。 それと「じかん」もかぞえなきゃ~ */ function Stopwatch (dispNode) { this.disp = dispNode; this.timerId = null; this.count = 0; this.reset (); this.interval = 100; //ms } Stopwatch.prototype.reset = function () { this.disp.value = this.count = 0; } Stopwatch.prototype.stop = function () { (this.timerId) && clearInterval (this.timerId); this.timerId = null; } Stopwatch.prototype.start = function () { this.timerId || (this.timerId = setInterval (countup, this.interval, this)); } function countup (that) { that.disp.value = ++that.count; } var sw0 = new Stopwatch (document.getElementById('A')); var sw1 = new Stopwatch (document.getElementById('B')); var sw2 = new Stopwatch (document.getElementById('C')); //おぶじぇくとしこうとやらでつくると、かんたんにたくさんつくれるじゃん! //ieだとうごかないよ、たぶん? //ぜんかくくうはくは、はんかくにしてね //もっとさいぶんかしたほうが(じょうたいのへんかとしてとらえるには)よいのでしょうが・・・ </script>
お礼
具体的なサンプルを作って頂き有難うございます。 すいすい書けるようになるまで反復練習が必要ですが、 徐々に慣れていこうと思います。
お礼
奥が深いですね。大変参考になりました。有難うございます。