一、Object.create()
该方法用于创建一个新对象,并为其指定原型对象和属性。
语法:Object.create(prototype,description);
proto:(必须),表示新建对象的原型对象,即该参数会被赋值到目标对象(即新对象)的原型上。该参数可以是null,对象等。
description:(可选),添加到新创建对象的可枚举属性。(是其自身的属性,而不是原型链上的枚举属性)
//new Object()方式创建
var a={name:1}
var b=new Object(a);
console.log(b);//{name:1}
console.log(b.__proto__);//{}
console.log(b.name);//1
//Object.create()方式创建
var a={name:1}
var b=Object.create(a);
console.log(b);//{}
console.log(b.__proto__);//{name:1}
console.log(b.name);//1
对象的属性包含value特性、writable特性(该对象属性是否可修改)、enumerable特性(是否可枚举)和configurable特性
var obj=Object.create({},{
"a":{
value:1,
configurable:false,
enumerable:true,
writable:true
},
"b":{
value:2,
configurable:false,
enumerable:true,
writable:true
}
})
console.log(obj.a);//1
除了Object.create()可以这样使用,还有Object.defineProperity()
二、Object.assign(target,source)
用途:将一个或多个源对象的值复制到目标对象上。(类似于$.extend()方法)
合并对象
var first={name:'Bob'};
var last={lastname:'smith'}
var p=Object.assign(first,last);
console.log(p);//{name: "Bob", lastname: "smith"}
克隆对象
var obj = { person: "Bob Smith"};
var clone = Object.assign({}, obj);
console.log(obj);//{ person: 'Bob Smith' }
转载于:https://www.cnblogs.com/xiaoan0705/p/11448466.html