对象

作者: 转移到CSDN名字丹丹的小跟班 | 来源:发表于2021-03-03 08:42 被阅读0次

    属性的简洁表示法

    let name = 'ff'
    let age = 20
    let obj = {name, age}
    console.log(obj)   //{name: "ff", age: 20}
    

    方法名简写

    let fun = function() {}
    //等于
    function fun () {}
    

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

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

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

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

    自定义的属性和拓展运算符对象里面属性的相同的时候:后面的属性会覆盖前面的

    对象新方法
    Object.assign()
    用于将源对象的所有可枚举属性复制到目标对象中。

    也就是说,对于Object.assign()而言,如果对象的属性值为简单类型(string,number),通过Object.assign({},srcobj);得到的新对象为深拷贝;如果属性值为对象或其他引用类型,那对于这个对象而言其实是浅拷贝的,这是Object.assign()特别需要注意的地方。

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

    与===的区别:

    //一是+0不等于-0
    Object.is(+0,-0);  //false
    +0 === -0  //true
    //二是NaN等于本身
    Object.is(NaN,NaN); //true
    NaN === NaN  //false
    

    相关文章

      网友评论

          本文标题:对象

          本文链接:https://www.haomeiwen.com/subject/efmufltx.html