中村さん、こんにちは。

>> 水面下でsrNrがGasを切り分けている
> 板橋さんの仰る、
> 水面下でsrNrがGasを切り分けている
>とはどういうニュアンスでしょうか?
>

なにせ素人考えなので、真偽のほどはあやしいのですが、

function Regulat(srNr, Gas){
this.srNr = Gas;
}
mater1 = new Regulat('12345','NOx')
mater2 = new Regulat('67890','COx')

というコンストラクタとインスタンスをセットすると、


mater1.srNr // displays NOx
mater2.srNr // displays COx


ですよね。(以下、コメントアウトは実行結果を表わす)


プロパティが共通なのに実行結果はオブジェクトに応じ
てきちんと分けて取得できてる(みたいだ)。なんでかな、
と思ったわけです。それで、それはきっと、"12345" とか
 "67990" が陰で糸を引いているにちがいない、と。でも、
決して表面には出て来ない。で、こいつらはどこで仕事し
てるんだろう、と思ってその居場所をあぶり出そうと思っ
たわけです。
でも、悲しいかな、いくらやっても初心者の私には彼らの
居場所を特定できない(居場所というのとはちょっと違うの
かもしれないんですが、私の素人感覚です)。
で、このコンストラクタの評価もかねてお伺いしようと思った
次第でした。実は、このコンストラクタは私が考えたもので、
教科書的な書き方はみなさんが書いていらっしゃるような
ものですよね。こちらの、構造はムダなようで、不可欠性
を内包しているというか、そんな気がしました。でも、中村
さんの説明を拝読して、それが違っていたような気がしてま
す。



>> 「実体」を表わさなくて、不気味だったです。
> 板橋さんの最初のコードでは、mater1、mater2共々、プロパティはひとつしか
>持っていません。つまりsrNrだけです。逆にお聞きしたいのは、何故、ひとつし
>かプロパティを持たないオブジェクト生成に、コンストラクタに引数をふたつも
>とるのかということです。
>function Regulat(Gas){
>  this.srNr = Gas;
>}
>mater1 = new Regulat('NOx');
>mater2 = new Regulat('COx');
>で良いものを、何故、new するときにふたつも引数を与えるのでしょうか?確か
>に、
>function Regulat(Gas){
>  this.srNr = Gas;
>}
>mater1 = new Regulat('NOx');
>mater2 = new Regulat('COx');
>mater1.num = '12345';
>mater2.num = '67890';
>と後からプロパティを追加することは出来ますが、それなら最初から
>function Regulat(srNr, Gas) {
>  this.srNr = srNr;
>  this.Gas = Gas;
>}
>とかやって、
>mater1 = new Regulat('12345','NOx')
>mater2 = new Regulat('67890','COx')
>でも良いと思うしこれが一番エレガントだと思うのですが……。
>



function Regulat(Gas){
  this.srNr = Gas;
}

は 

function Regulat(Gas){
  this.Gas = Gas;
}

だと思いますが、たしかにおっしゃるとおりですよね。私の
コンストラクタはちょっと変わっているというか、ヘンかも
しれません。これは、配列の発想がアタマにあるので、そう
したのだと思います。違っているかもしれませんが、その方
がコードを節約できるような気がして・・・。

いろいろありがとうございます。

--
板橋