私はここに来たばかりなので、ルールに違反しないことを願っています...
それは、私が JavaScript でオブジェクトの継承に取り組んでいるためです...そして、このことに対する「私の」ルールを考え出しているところです...そして今、私は「ある種の」問題に直面しています...
これは私がやりたいことです:
私が作成しているオブジェクトの識別子であるメソッド(関数)が好きです。このメソッドはオブジェクトの作成者でもあります...ただし、同じオブジェクトを使用して、オブジェクトが作成した「データ型」をインスタンス化したい(私はコードがもっと説明していると思います...ここに私が立ち往生している部分があります)
TRecord = function() {
this.Class = 'TRecord';
F = function() {};
F.prototype = arguments[0]; //args is an object (se below)
return(new F());
};
TRecord.create = function(O) { // this method will not be executed as I like
if(O) alert(O.Class); // inside above object when define there with
<new O object created and returned - code missing>
}; // this.create = function(){};
// but if defined here it will, se below...
TMessage = TRecord({
'Class': 'TMessage',
'msgID': Number(0),
'data': Object('Hello')
});
aMSG = TRecord.create(TMessage); // the TMessage instance will be created
// with the above method... and
alert(aMSG.Class); // will output TMessage...
TRecord 内に TRecord.create 関数を実装できないのはなぜですか?
... source.js全体を投稿するのに問題があります(フォーマットが機能しません)ので、これは当然のことですが、レコードではなく「実際の」関数(クラス)オブジェクト用の他のコンストラクター/クリエーター関数がいくつかあります(データ オブジェクト)... 動作します - これらは実装が少し異なりますが、深い継承がサポートされています...