JavaScript でプレーン オブジェクトをクラス インスタンスにキャストする
JavaScript では、サーバーからプレーン オブジェクトを JSON 応答として受信するときに、それらを型付きクラスのインスタンスにキャストする必要があります。これにより、クラス固有のメソッドとプロパティにアクセスできるようになります。
解決策:
1 つの方法は、インスタンスに似た任意のオブジェクトを受け入れ、そのクローンを作成するコンストラクターを作成することです。あるいは、オブジェクトをインスタンスに変換する静的メソッドを実装することもできます:
<code class="javascript">Person.fromJSON = function(obj) { // Custom code to create an instance from the object return ...; };</code>
パブリック プロパティを持つプレーン オブジェクトがある特定のシナリオでは、次のメソッドを使用できます:
<code class="javascript">var personInstance = new Person(); for (var prop in personLiteral) { personInstance[prop] = personLiteral[prop]; }</code>
これにより、プレーン オブジェクトのすべてのプロパティが新しく作成されたインスタンスに割り当てられます。同様に、Animal インスタンスを作成できます。
注:
サンプル コード:
<code class="javascript">var persons = JSON.parse(serverResponse); for (var i = 0; i < persons.length; i++) { persons[i] = Object.assign(new Person(), persons[i]); // Use Object.assign for browsers that support it for (var j = 0; j < persons[i].animals; j++) { persons[i].animals[j] = Object.assign(new Animal(), persons[i].animals[j]); } }</code>
このコードにより、person[0].Animals[2].Run(); などのクラス固有のメソッドを使用できるようになります。
以上がJavaScript でプレーン JSON オブジェクトをクラス インスタンスに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。