ES6--对象--对象简写\对象API拓展

对象简写

       ES6中规定可以直接在对象中写入变量和函数作为对象的属性和方法,此时属性名为变量名, 属性值为变量的值。对象简写在未来的使用频率极其高。

var name= 'terry';
var foo= {
    name,
    sayName(){
        console.log('my name is',this.name);
    }
};

let username = '张三';
let obj = {
  username,
  sayName: function () {
    // ES5在对象中声明函数的方法
  },
  sayAge () {
  }
}

对象API拓展

ES6中对于Object的拓展主要是静态方法的拓展
      Object.is()     判断两个值是否一样
      Object.assign() ,
            Object.assign(obj1, obj2) 深复制
            Object.assign(obj1, obj2, obj3) 对象组合
      Object.setPrototypeOf(obj1, obj2)  为目标对象设置原型
      Object.getPrototypeOf()  获取目标对象的原型
      Object.keys()     返回对象属性名组成的数组
      Object.values()   返回对象属性值组成的数组
      Object.entries()  返回对象[属性名, 属性值]组成的数组

// console.log(-0 === +0);
// console.log(Object.is(-0 === +0));

// console.log(NaN === NaN);
// console.log(Object.is(NaN === NaN));

let obj1 = {
  name: 'zhangsan'
}
let obj2 = {
  name: 'lisi',
  age: 12
}
let newObj = {};
Object.assign(newObj, obj1, obj2);
console.log(newObj)
// console.log(newObj === obj);
let obj1 = {
  name: 'zhangsan',
  age: 12
}
let obj2 = {
  name: 'lisi',
  gender: 'male'
}
// 设置obj1的原型
Object.setPrototypeOf(obj1, obj2);
// 获取obj1的原型
console.log(obj1.__proto__);
console.log(obj1.constructor.prototype);
console.log(Object.getPrototypeOf(obj1));
let obj1 = {
  1: '张三',
  2: '李四',
  3: '王五'
}

let key = Object.keys(obj1);
let value = Object.values(obj1);
let entry = Object.entries(obj1);
console.log(key);
console.log(value);
console.log(entry); 
// [ '1', '2', '3' ]
// [ '张三', '李四', '王五' ]
// [ [ '1', '张三' ], [ '2', '李四' ], [ '3', '王五' ] ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值