ES6中API对象

/*
 * @Author: [jsh]
 * @Date: 2021-09-26 15:14:47
 * @LastEditors: [jsh]
 * @LastEditTime: 2021-09-26 19:55:34
 * @Description: 
 */
//对象API拓展
//.Object.is(a,b); 判断a和b的值是否相等
console.log(1===1);//true
console.log(Object.is(1,1));//true
console.log(Object.is(1,2));//false
console.log(+0===-0)//true
console.log(Object.is(+0,-0));//false
console.log(NaN===NaN);//false
console.log(Object.is(NaN,NaN));//true
//1.Object.assign(a,obj);拷贝
let a={};
let obj={
    name:'jsh',
    age:12
}
//第一个对象为要给它赋值拷贝的目标对象,第二个为被拷贝的对象
let res=Object.assign(a,obj);
console.log(a);
console.log(a===obj);//false 说明是深拷贝,即在堆内存空间另外开辟一块空间

//2.Object.assign(o,obj,obj1); 三个参数代表的是合并对象obj,obj1到o当中并返回o对象
let b={};
let obj1={
    name:"zs",
    age:12
    }
let obj2={
    name:"ls",
    gender:1
    }
let res1=Object.assign(b,obj1,obj2);
console.log(b); //{ name: 'ls', age: 12, gender: 1 }
console.log(res1); // { name: 'ls', age: 12, gender: 1 }

//3.获取原型对象中的方法
//Object.getPrototypeOf()
let obj3={}
let obj4={
    name:"jsh",
    age:1
    }
let obj5={
    name:'ls',
    gender:'男'
}
//4.为目标对象设置原型,将obj4设置成obj3的原型
Object.setPrototypeOf(obj3,obj4)

console.log(obj3.__proto__); //{ name: 'jsh', age: 1 }
console.log(obj3.constructor.prototype);// [Object: null prototype] {}
console.log(Object.getPrototypeOf(obj3));// { name: 'jsh', age: 1 }
console.log(obj5.__proto__);//[Object: null prototype] {}
console.log(obj5.constructor.prototype);//[Object: null prototype] {}
console.log(Object.getPrototypeOf(obj5));//[Object: null prototype] {}

//5.Object.keys() Object.values()  Object.entries()
let obj6={
    name:'zs',
    age:12,
    gender:'male'
    }
// 获取所有属性名组成的数组
console.log(Object.keys(obj6));//[ 'name', 'age', 'gender' ]
// 获取所有属性值组成的数组
console.log(Object.values(obj6));//[ 'zs', 12, 'male' ]
// 获取键值对组成的数组
let entries=Object.entries(obj6)
console.log(entries);// [ [ 'name', 'zs' ], [ 'age', 12 ], [ 'gender', 'male' ] ]
// console.log(Object.entries(obj6));
//循环遍历
Object.entries(obj6).forEach((item,index)=>{
    console.log(item[0],item[1]);
})

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值