美文网首页
Object对象

Object对象

作者: icaojinyu | 来源:发表于2019-01-29 17:01 被阅读0次

    一、静态方法

    1. Object.keys()和Object.getOwnPropertyNames()
    • 二者都可以用来遍历对象的属性
    • 区别:
      • Object.keys方法的参数是一个对象,返回一个数组。该数组的成员都是该对象自身的(而不是继承的)所有属性
      • Object.keys方法只返回可枚举的属性
      • Object.getOwnPropertyNames方法,不仅返回可枚举的属性,还返回不可枚举的属性
    let arr = [1,2,3]
    Object.keys(arr) //  ["0", "1", "2"]
    Object.getOwnPropertyNames(arr) //  ["0", "1", "2", "length"]
    

    二、实例方法

    1. valueOf()方法:返回当前对象对应的值。
    2. toString()方法:返回当前对象对应的字符串形式。
    • 数组、字符串、函数、Date 对象都分别部署了自定义的toString方法,覆盖了Object.prototype.toString方法。
    1. toLocalString()方法:返回当前对象对应的本地字符串形式。
    • 有三个对象自定义了toLocaleString方法:Number,Array,Date
    1. hasOwnProperty()方法:判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。
    2. isPrototypeOf()方法:判断当前对象是否为另一个对象的原型。
    3. propertyIsEnumerable()方法:判断某个属性是否可枚举。
    let obj = {name:'lewis',age:17}
    obj.valueOf() // {name: "lewis", age: 17} 返回对象自身
    
    ----------
    obj.toString() // "[object Object]"
    [1, 2, 3].toString() // "1,2,3"
    '123'.toString() // "123"
    (function () {
      return 123;
    }).toString()
    // "function () {
    //   return 123;
    // }"
    new Date().toString() // "Tue Jan 29 2019 17:02:26 GMT+0800 (中国标准时间)"
    ----------
    
    Array.prototype.isPrototypeOf([]) // true
    [].propertyIsEnumerable('length') // false 数组的length属性不可以被枚举
    

    相关文章

      网友评论

          本文标题:Object对象

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