• ベストアンサー

js new

javascriptのnewについて javascriptのnewはJava言語のnew(インスタンスの生成)と意味は同じですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5081/13278)
回答No.1

同じ意味です。

関連するQ&A

  • newから始まる場合がわからなくて困ってます

    以下のプログラムでわからないことがあります。 new BadBankTest(bank).start(); はnewから始まっており、2つ使ってますが、そのインスタンス生成の仕組みはどうなってるのでしょうか? 省略しない場合は、BadBankTest bt1 = new BadBankTest(bank); のように作ったインスタンスをbt1に代入になると思いますが、 newから始まった場合に左に代入しないことでの、インスタンス生成のその仕組みがわからなくて困ってます。 class BadBank { //省略 } public class BadBankTest extends Thread { BadBank bank; public BadBankTest(BadBank bank) { this.bank = bank; } public void run() { while(true) { bank.addMoney(100); bank.addMoney(-100); } } public static void main(String[] args) { BadBank bank = new BadBank(); new BadBankTest(bank).start(); new BadBankTest(bank).start(); /* 上と同じ動作 BadBank bank = new BadBank(); BadBankTest bt1 = new BadBankTest(bank); bt1.start(); BadBankTest bt2 = new BadBankTest(bank); bt2.start(); */ } }

    • ベストアンサー
    • Java
  • インターフェースは New 出来ない! の?

    現在 JDKSE 1.3.1 で Java の調査をしています。 Event 関連の調査中に疑問に感じた事が有ります。 下記の件に関し、意見有りましたらよろしくお願い致します。 まずJava 言語の仕様で、「インターフェースはインスタンスを作成できない。」 と有ります。 これはあるサンプルコードからの抜粋です。 内容は、Applet にコマンドボタンコントロールを追加し、クリックされた際の処理を登録しているんですが・・・・・ button.addActionListener(new ActionListener(){..... となっています。 コンパイル成功し、正常に記述されたイベント処理が行われています。 が、addActionListener の引数で渡されている ActionListener はインターフェースですよね? あれっ、違うのかな・・・・ なぜ、new ActionListener()... として引数に渡せるのでしょうか? 現在自身で勉強中なのですが、平行して質問させて頂きました。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • new演算子のメリット・便利さは何でしょうか。

    javascriptのnew演算子(コントラスタとインスタンス)はどんなときに役立ちますか? function Member1とfunction Member2を比較した場合 <script type="text/javascript"> function Member1 (firstName, lastName) { return lastName + " " + firstName; } document.writeln(Member1('氏名', '名字')); // 「名字 氏名」と表示 //ここより下は参考書より var Member2 = function(firstName, lastName){ // thisはコンストラクタによって生成されるインスタンスを表す //this.プロパティ名 = 値;として記述する this.firstName = firstName; //firstNameというプロパティを生成 this.lastName = lastName; //lastNameというプロパティを生成 this.getName = function(){ return this.lastName + " " + this.firstName; } }; var mem = new Member2('氏名', '名字'); //オブジェクトの初期化 document.writeln(mem.getName()); // 「名字 氏名」と表示 </script> function Member1のような通常の方法でできることを、 なぜfunction Member2のようにnew演算子を使うのか、 そうすることで、どんなメリット・便利さがあるのかと思いました。 いろいろ調べたのですが解決できず、ご教示を頂こうと思いました。 よろしくお願いいたします。

  • newは明示的にした方が良いのか?

    インスタンス生成時、メモリを確保するためにnewします。 その時に疑問が生まれました。以下の書き方は何が違うのでしょうか。 そしてどちらが推奨されるのでしょうか? (1) newを明示的に実施 String str = new String(); str = "hoge"; (2) newは明示的にしない String str = "hoge";

    • ベストアンサー
    • Java
  • vb.netのnewキーワード

    'Excel.Application の新しいインスタンスを生成するとき Dim xlApplication As New Excel.Application() のようにNewを使いますが ワークブックを作成するときは Dim xlBooks As Excel.Workbooks のようにNewを使わないのはなぜですか?

  • Ruby 特異メソッドのnewが先に実行?

    Rubyのインスタンス生成について質問があります。 通常クラスを定義する場合は class Hoge ; def hello(); pirnt "hello"; end であると思います。 ただ Hoge = Class.new(); でもクラスは定義できるとききました。 ただこの場合Hogeクラスに定義できるのは HogeというClassクラスから作られた特異クラスとしてのHogeに 特異メソッドのみを定義できるということですよね? 通常のインスタンスメソッドは定義できませんよね? ではでは、 hoge = Class.new(); とした場合はどうなるのでしょうか? この場合は Classクラスの純粋なインスタンスとなるのでしょうか? 前者の定義とおなじ仕方ですが代入先が、通常の変数です。 この場合は、クラスオブジェクトとして生成されるのですか? オンラインマニュアルをみたところ 「新しく名前の付いていない superclass のサブクラスを生成します。 superclass が省略された時にはObject のサブクラスを生成します。 名前のないクラスは、最初に名前を求める際に代入されている定数名を検索し、見つかった定数名をクラス名とします。」 とあります。 上記内容は Classクラスの特異クラスとして定義されている特異メソッド(new)です。 これは Class.new()で作られたインスタンスを代入する先が定数であればその定数名と同じクラスを定義しつつそのClassクラスのクラスオブジェクトを生成するという意味合いでまちがいないでしょうか? 上記のとおりであれば hoge =Class.new()の場合は、やはりhogeというクラスを定義することになるのでしょうか? クラス定義は定数でなければならないはずですよね。 ただ実際、 p hoge;として出力すると#とひょうじされています。これはhogeがクラスオブジェクトではなく ただのインスタンスであるということでしょうか? であるならばこの hoge = Class.new()の式のnewはClassクラスオブジェクトに定義された特異メソッドではなく Classクラスに定義されたnewメソッド・・・・・つまりClassクラスに定義されたインスタンスメソッドの方のnewメソッドだとおもうのですが・・・・・・。 つまりこちらのメソッドですね。 「new( ... ) クラスのインスタンスを生成して返します。このメソッドの引数はブロック引数も含め initialize に渡されます。」 ※オンラインリファレンスから参照しました。 しかし 通常メソッドの検索は特異メソッドからはじまりその後クラスのインスタンスメソッド->親クラスのメソッドと 検索して行くとあります。 必ず先に、特異メソッドを実行しているはずだと思うのですが・・・。 やはり特異メソッドnewを実行しているのでしょうか? 長々すみませんが、ご教授ください。

    • ベストアンサー
    • Ruby
  • panel.add(new Button("1"));という書き方について。

    javaを学習している者です。 インスタンスを作成するには クラス名 変数名 = new クラス名(); というのが基本だと思うのですが、タイトルのような書き方(panel.add(new Button("1"))だと頭の中ではどのように考えればいいのでしょうか?変数名を持たないインスタンスを生成してパネルにのっけている、ということでしょうか?しかもこれがfor文で繰り返されていると for(int i = 0; i < 10; i++){ panel.add(new Button(Integer.toString(i))); } 余計にややこしくて分からなくなってしまいます。一応10個違うインスタンスをそれぞれ作っているのでしょうか? 本に載っていた書き方だし、エラーも出ないのでまず間違っていないのは分かるのですが、いまいちピンと来ないです・・・。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javascript new演算子について質問があります。

    javascript new演算子について質問があります。 只今javascript勉強中なのですが、どこかのサイトでnew演算子は悪いパーツとの 記事を読みました。 そこでnew演算子を使用せずにオブジェクト生成の方法を試行錯誤考えてみたのですが (IE用に__proto__もなしで)例えば以下コードはアリなコードでしょうか?? あるいはありえない感じでしょうか?? またnewが悪なのはインスタンスを作る時にnewを付け忘れると、 グローバルな汚染をしてしまうということだけなのでしょうか?? オブジェクトとプロトタイプの理解に苦しんでいるところなので 色々と曖昧なのですが、どなたかどうぞご教授お願い致します。 var obj = {}; obj.method = function(){ this.prop1 = "hoge" return this; }; obj.method.prototype = obj.method(); obj.method.prototype.prop2 = "fuga"; var obj2 = obj.method(); console.log(obj2)

  • インスタンスとオブジェクト 生成

    クラスのオブジェクトを生成するときに(newをつかって) ●インスタンスを生成する。 ●オブジェクトを生成する。 と参考書に書いてありますが、言い方はどちらでもいいそうです。 でも、2種類の言い方がるということは厳密には意味が違うような気がするのですが、皆さんはどう思いますか? またどちらの言い方を使っていますか? どちらが正しいのでしょうか?

    • ベストアンサー
    • Java
  • C++のnewで確保した領域について

    こんにちわ。C++を勉強し始めた者です。 new演算子を使ってインスタンスを生成した場合、それはスタックではなくヒープ領域に確保され、不要になったらdeleteを使って領域を解放しなければいけない認識です。 C++の初心者向けサンプルコードを見ていて疑問があったので質問させてください。 (例)クラスA.cpp ======================== #include <Car> #include <Garage> ~略~ クラスAのコンストラクタ{ Car *mycar = new Car("プリウス"); addGarage( mycar ); } クラスAのデストラクタ{ } ======================== 上記のような実装のクラスAがあったのですが、コンストラクタでCarクラスのインスタンス生成をして、オート変数の*mycarに格納して、Garageの公開関数に渡しています。 質問1:このクラスAをインスタンス生成した場合、コンストラクタで確保したヒープ領域は、プログラム終了時まで解放されない認識であっていますか? 質問2:オート変数の*mycarはコンストラクタからreturnした時点で解放されてしまうので、今のままではデストラクタでヒープ領域をdeleteできない認識であっていますか? 質問3:newで生成したインスタンスへのポインタは、その関数内でdeleteしない場合、メンバ変数やstatic変数、グローバル変数に格納しなければdeleteできなくなるという理解であっていますか? 質問4:C++のコードでnewした戻り値をオート変数に格納するプログラムは通常使うことはあるのですか?

専門家に質問してみよう