当我尝试从现有对象创建新对象时,如下面的代码所示,我无法使用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>
我得到的输出是John2 is 50 years old. {}
答案 0 :(得分:0)
检查here
Object.create()
接受一个将对象设置为原型的参数。它用于创建新对象,扩展另一个。
您应该使用Object.assign
var man = Object.assign({}, person);
答案 1 :(得分:0)
我达到了如下所需的结果。 how to use javascript Object.defineProperty链接帮助我解决了我的问题。
//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];}});
}
});