sunny-cheng  

属性的简洁表示法

ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。

const age = 12;
const name = "Amy";
const person = {age, name};
person   //{age: 12, name: "Amy"}
//等同于
const person = {age: age, name: name}

方法名简写
const person = {
  sayHi(){
    console.log("Hi");
    }
  }
person.sayHi();
//"Hi" //等同于
const person = {
  sayHi:function(){
    console.log("Hi");
  }
}
person.sayHi();//"Hi"

属性名表达式

ES6允许用表达式作为属性名,但是一定要将表达式放在方括号内。

  注意点:属性的简洁表示法和属性名表达式不能同时使用,否则会报错。

const obj = {
 ["he"+"llo"](){
   return "Hi";
  }
}
obj.hello();  //"Hi"

对象的拓展运算符

拓展运算符(...)用于取出参数对象所有可遍历属性然后拷贝到当前对象。

基本用法
let person = {name: "Amy", age: 15};
let someone = { ...person };
someone;  //{name: "Amy", age: 15}
可用于合并两个对象
let age = {age: 15};
let name = {name: "Amy"};
let person = {...age, ...name};
person;  //{age: 15, name: "Amy"}

 

对象的方法

Object.is(value1, value2),比较两个值是否严格相等,与===基本类似      

Object.is("q","q"); // true 
Object.is(1,1); // true
Object.is([1],[1]); // false
Object.is({q:1},{q:1}); // false


console.log(NaN
=== NaN);
//true
console.log(Object.is(NaN,NaN)); //true
***** assign() *** 对象的合并 Object.assign(target,obj1,obj2....) //true 返回合并之后的新对象 let newObj = Object.assign({},{a:1},{b:2}); console.log(newObj) //{a: 1, b: 2}

 

posted on 2020-05-28 22:08  sunny-cheng  阅读(135)  评论(0编辑  收藏  举报