美文网首页
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