2番目のオブジェクトを変更すると、別のオブジェクトからオブジェクトを作成したいが、最初のオブジェクトは変更しない。JavaScriptで別のオブジェクトと等しいオブジェクトを作成する方法
私が試したHAV:
var ojb2 = new Object(obj1); // obj1 is still bound to obj2
Var obj2 = Object.create(obj1); // does not create object at all
2番目のオブジェクトを変更すると、別のオブジェクトからオブジェクトを作成したいが、最初のオブジェクトは変更しない。JavaScriptで別のオブジェクトと等しいオブジェクトを作成する方法
私が試したHAV:
var ojb2 = new Object(obj1); // obj1 is still bound to obj2
Var obj2 = Object.create(obj1); // does not create object at all
Object.createは実際にオブジェクトを作成しますが、その後、新しいオブジェクトのプロトタイプとしての最初のオブジェクトを置きます。あなたが最初のオブジェクトで定義されたプロパティと関数を使用することができますが、あなたはまた、最初のオブジェクトを上書きせずに、同じ名前のプロパティを定義することができますこの方法:
var obj1 = {a: 20};
var obj2 = Object.create(obj1);
obj2.a = 10;
// obj2 = {
// a: 10,
// __proto__: {
// a: 20
// }
//}
は、私は100%確実ではありませんよあなたの質問を正しく理解していますが、別のオブジェクトからオブジェクトを作成したいのですか?そして、あなたが2番目のものを変更するとき、それは元のものを変更しませんか?私があなたを理解すれば、new Object()
を使うことができます。 使用している場合の例を次に示します。
var obj1 = {
asd : "asd",
asd2 : "asd2"
};
var obj2 = new Object(obj1);
console.log(obj1); //{ asd: 'asd', asd2: 'asd2' }
console.log(obj2); //{ asd: 'asd', asd2: 'asd2' }
obj2 = {
aasd : "aasd",
aasd2 : "aasd2"
};
console.log(obj1); //{ asd: 'asd', asd2: 'asd2' }
console.log(obj2); //{ aasd: 'aasd', aasd2: 'aasd2' }
"from"とはどういう意味ですか? – Bergi
'Object.create'は' obj1'を継承するオブジェクトを正常に作成します – Bergi
[JavaScriptでオブジェクトを深くクローンする最も効率的な方法は何ですか?](http://stackoverflow.com/questions/122102/)最も効率的な方法から深いクローン、つまりオブジェクト内のjavascript) – Mistalis