/^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^l
l 久野さん(kuno@gssm.otsuka.tsukuba.ac.jp)は、 l
l     日時:3 Jul 2003 14:29:43 GMT  に、        l
l     件名:< Re: オブジェクト >                 l
l として送信されました。                         l
l                                                /
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

> > function Regulat(srNr, Gas)
> > this.srNr = Gas;
> > }
> > mater1 = new Regulat('12345','NOx')
> > mater2 = new Regulat('67890','COx')
> > で、"12345" および "67890" を取得するにはどう
> > 書けばよいのでしょうか。

 「 { 」がないのはおいておくとして(後で補足されていますが)。

>   mater1.srNrとmater2.srNrだと思うけど…
 「this.srNr = Gas」なので、
        mater1.srNr:NOx
        mater2.srNr:COx
になると思うんですが........。

 生成されたオブジェクト(mater1、mater2)から、生成元のコンストラクタ:
Regulat の arguments オブジェクトを呼ぶ方法(この方法を便宜上「(A)」と
します)があれば mater1、mater2 からでも「12345」、「67890」をコンストラ
クタを弄ることなく取得出来るとは思うんですが。そういう方法が思い浮かびま
せん。その方法を知っていらっしゃる方がいれば私にも教えて頂きたいです(実
はそれでずっと悩んでレス入れられませんでした)。

 普通なら、
function Regulat(srNr, Gas) {
        this.srNr = srNr;
        this.Gas = Gas;
}
とかやって、
        mater1 = new Regulat('12345','NOx')
        mater2 = new Regulat('67890','COx')
とした後、
久野さんの書かれた様に
        mater1.srNr
        mater2.srNr
で良いんですが、(A)の方法がないとして、板橋 さんのコードのようにどうし
てもコンストラクタの第一仮引数:srNrに渡された第一実引数:012345を第二実
引数:NOx で上書きして、その状況下でインスタンスから上書きされる前の値を
取得したいのであれば、

function Regulat(srNr, Gas) {
        this.arg  = arguments;
        this.srNr = Gas;
}
のようにして、
        mater1 = new Regulat('12345','NOx');
        mater2 = new Regulat('67890','COx');
でインスタンスを生成し、
        mater1.arg[0];
        mater2.arg[0];
で「12345」と「67890」が取得出来ると思います。

> > [PS]あと、 「インスタンス」って、日本語でいうとしたらどういうのが
> > 適当ですか。英和辞書を引いてみましたが、どの訳もイマイチ
> > ピンと来ませんでした。
>   訳すなら「実体」かな。でもインスタンスとそのまま言うことの方が
> 多い気がします。
 私も訳すなら、「実体」ですね。鯛焼きを焼く鉄板(型取りの為の「雛型」)
がクラスで、それから作られる個々の鯛焼きが「実体」=インスタンスだと思い
ます。クラスはあくまで設計図です。そこから「形」になったものがインスタン
スです(クラスの静的メンバや静的メソッドはインスタンス化しなくても使えま
すが)。
 意味が分かるのなら、久野さんの仰るように、インスタンスと呼んで良いので
はないでしょうか?

---------------------------------------
Hirotsugu Nakamura <CQE25120@nifty.com>