Javascript 创建对象的副本
当我试图从现有对象创建一个新对象时,如下面的代码所示,我无法使用Javascript 创建对象的副本,javascript,Javascript,当我试图从现有对象创建一个新对象时,如下面的代码所示,我无法使用JSON.stringify()方法打印重复对象的值。无法找出问题所在 <!DOCTYPE html> <html> <body> <p>Creating a JavaScript Object.</p> <p id="demo"></p> <script> var person = {firstName:"John2", l
JSON.stringify()
方法打印重复对象的值。无法找出问题所在
<!DOCTYPE html>
<html>
<body>
<p>Creating a JavaScript Object.</p>
<p id="demo"></p>
<script>
var person = {firstName:"John2", lastName:"Doe", age:50, eyeColor:"blue"};
var man = Object.create(person);
document.getElementById("demo").innerHTML =
man.firstName + " is " + man.age + " years old." + JSON.stringify(man);
</script>
</body>
</html>
创建JavaScript对象
var person={firstName:“John2”,lastName:“Doe”,年龄:50岁,眼睛颜色:“blue”};
var man=Object.create(person);
document.getElementById(“demo”).innerHTML=
man.firstName+“是”+man.age+“岁。”+JSON.stringify(man);
我得到的输出是John2已经50岁了。{}
检查
Object.create()
接受一个参数,该参数将对象设置为其原型。它用于创建新对象和扩展另一个对象
你应该使用
我取得了如下预期结果。林克帮助我解决了我的问题
//check whether property name of v exists in v1.
Object.getOwnPropertyNames(v[0]).forEach(function(val,idx,array){
console.log(val + '->' + v[0][val]);
if (val !== undefined && val !== "_id" && !v1[0].hasOwnProperty(val)) {
Object.defineProperty(v1[0], val, {enumerable:true,configurable:false,get:function(){return v[0][val];}});
}
});
JSON.stringify
只获取对象自身的属性,而不获取其原型链中的属性。另外:对于简单对象,它工作正常,但对于深度克隆,我认为我们需要编写自己的逻辑。是的。。根据问题示例,这是一种获取浅拷贝的方法。对于深拷贝,您可以检查我的要求,如下所示。我应该能够如下合并src1和src2。src1={“名称”:“abc”,“描述”:[[{“a”:“b”}][{“c”:“d”}][{“e”:“f”}]}}和src2={“名称”:“abc”,“ver”:1}到{“名称”:“abc”,“描述”:[{“a”:“b”}][{“c”:“d”}][{“e”:“f”}],“ver 1}我没有使用jquery
//check whether property name of v exists in v1.
Object.getOwnPropertyNames(v[0]).forEach(function(val,idx,array){
console.log(val + '->' + v[0][val]);
if (val !== undefined && val !== "_id" && !v1[0].hasOwnProperty(val)) {
Object.defineProperty(v1[0], val, {enumerable:true,configurable:false,get:function(){return v[0][val];}});
}
});