美文网首页
JS之Object常用函数

JS之Object常用函数

作者: 卖梦想的男孩 | 来源:发表于2016-12-06 18:23 被阅读58次
    • assign
      功能:把多个的对象自身可枚举属性拷贝给目标对象并返回目标对象。
      注意:
    • 实质是使用源对象的 getter和目标对象的setter
    • String和Symbol类型的属性都会被拷贝
    • 拷贝过程如果中断,已经拷贝成功的属性不会受到影响,还未拷贝的属性将不会再被拷贝。
    • 值为 null或 undefined的属性会被忽略
    • 属于浅拷贝类型,如果属性中包含对象,对象修改后,最终值也会跟着改变
    • 继承属性和不可枚举属性是不能拷贝的
    • 原始类型会被包装为 object
      栗子:
    var copy = Object.assign({}, {a:1});
    console.log(copy); // { a: 1 }
    let src = {x:1,y:{a:1}}
    let dist = Object.assign({},src);
    src.y.a = 2//此时dist为:{ x: 1, y: { a: 2 } }
    
    • create
      功能:创建指定原型和属性的对象
      栗子:
    function A() {
    }
    function B(){
    }
    B.prototype = Object.create(A.prototype);
    b = new B();
    b instanceof A//true
    
    • defineProperty | defineProperties
      功能:为对象定义属性
      属性描述:
      configurable:当且仅当该属性的 configurable 为 true 时,该属性描述符
      才能够被改变,也能够被删除。默认为 false
      enumerable:当且仅当该属性的 enumerable 为 true 时,该属性才能够出现在对象的枚举属性中。默认为 false
      value:初始值,默认为undefined
      writable:是否可写,默认为 false
      get: 返回实际值的函数,默认为undefined
      set: 设置并返回实际值的函数,默认为undefined
    var obj={};
    Object.defineProperties(obj,{
      p1:{
        value:1
      },
      p2:{
        value:2
      }
    })
    obj.p1//1
    obj.p2//2
    
    • keys | getOwnPropertyNames
      功能:获取对象自身属性名数组
      区别:
      keys:自身的可枚举的属性
      getOwnPropertyNames:自身所有的属性
      注意:
      只是自身的属性,原型链上继承的属性可通过for...in获取
    • hasOwnProperty
      功能:判断某个对象是否含有指定的自身属性
    • is
      功能:判断两个对象是否是同一个值
      注意:
      1 ==运算符会对它两边的操作数做隐式的类型转换
      2 ===不会对操作数进行类型转换,但是它会把 -0和 +0这两个数值视为相同的,还会把两个NaN看成是不相等的
      3 只有满足下面任一条is才是true:
    • 两个值都是 undefined
    • 两个值都是 null
    • 两个值都是 true或者都是 false
    • 两个值是由相同个数的字符按照相同的顺序组成的字符串
    • 两个值指向同一个对象
    • 两个值都是数字并且
      • 都是正零 +0
      • 都是负零 -0
      • 都是 NaN
      • 都是除零和 NaN 外的其它同一个数字

    相关文章

      网友评论

          本文标题:JS之Object常用函数

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