Object函数对象常用方法
1.assign()
**Object.assign()**
方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
var target = { a: 1 };
var source1 = { b: 2 };
var source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}
Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。
2.defineProperty()
vue.js是通过它实现双向绑定的。俗称属性拦截器。而且专门用来监控对象属性变化的Object.observe方法也被草案发起人撤回了(此方法在node环境中仍能使用)。
方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。
Object.defineProperty(obj,prop,descriptor)
var student ={
name: 'tom',
age: 21,
intro:(()=>{
console.log("我是一名学生");
})
}
Object.defineProperty(student,'major',{
value:'software',
enumerable:true
})
console.log(student.major);
3. create()
Object.create() 方法创建一个拥有指定原型和若干个指定属性的对象。
Object.create(proto, [ propertiesObject ])
var Tom = {
name:"tom"
}
var newTom=Object.create(Tom,{
"age":{
value:"18",
enumerable:false
}
});
console.log(Object.keys(newTom));// ps: Object.keys()访问不了继承对象的属性和不可枚举的属性。
for (const key in newTom) {
console.log(newTom[key]);
}
4. isFrozen()
Object构造函数中的freeze()函数用于冻结对象
冻结一词指的是不能向对象中添加新的属性,不能修改或者删除对象的属性,变成一个完全不可变的对象。
var Tom = {
name:"tom"
}
Tomfreeze = Object.freeze(Tom);
Tomfreeze.name="Tom";
console.log(Tomfreeze.name);// tom
5.getPropertyDescriptor()&getOwnPropertyNames
getPropertyDescriptor()获取对象某个属性的配置信息
getOwnPropertyNames
获取对象所有属性值,包括不可枚举的,不包括原型继承来的属性。
6. getPrototypeOf()
某个对象的原型对象
var Tom = {
name:"tom"
}
var newTom=Object.create(Tom,{
"age":{
value:"18",
enumerable:false
}
});
console.log(Object.getPrototypeOf(newTom));//{name: "tom"}
7.seal()
密封对象除了可以修改属性的值,其他都不可以
var Tom = {
name:"tom"
}
TomSeal = Object.seal(Tom);
TomSeal.age= 21;
console.log(TomSeal.age);// underfined
网友评论