私はすでに作成されたオブジェクトを使って新しいオブジェクトを作成しようとしています。これは私が達成しようとしているものです:あなたが見ることができるように、私はアメリカに住んで起こるパトリックと呼ばれる新しい人、25歳を作成しようとしていますJavascriptコンストラクタ - オブジェクトを使用しますか?
var obj = {"Name" : "Patrick", "Age": 25, "Country": "US"};
document.writeln(JSON.stringify(obj) + "<br />");
function Person(name, age, country) {
this.name = name;
this.age = age;
this.country = country;
}
document.writeln(JSON.stringify(new Person(obj)));
https://jsfiddle.net/dotjz9tb/
。私のPerson
コンストラクタは、パラメータとして名前、年齢、国を取ります。しかし、私のオブジェクトは以前の関数からすでに作成されているので、new Person(obj)
を実行したいとし、obj
のパラメータに基づいて新しいオブジェクトを作成します。
私はnew Person(obj.name, obj.age, obj.country)
をやることができると知っていますが、代わりに、コンストラクタをオブジェクトに代わって渡しますが、まだ実行できるのはまだnew Person("Jack", 52, "UK")
です。
このようなことは可能ですか?今のところ、これはそれが本当に作成されています方法です:
new Person(obj, undefined, undefined);
//or
{
"name": {
"Name":" Patrick","
Age":25,
"Country":"US"
}
}
name
が私のオブジェクトに設定されている間age
とcountry
は、何も設定されていることを意味します。
としてそれを呼び出すことができます){ this.name = obj.Name; this.age = obj.Age; this.country = obj.Country; } ' – Rayon
@Rayonその後、オブジェクトを取得する新しいコンストラクタを作成する必要があります。 – MortenMoulder
それの中の条件... 'arguments.length'のようなもの? – Rayon