对象Object常用方法与属性

参考

对象Object创建常用方式:2种方式

var obj = {};//创建一个空对象 => {}
var obj = new Object(); //创建一个空对象 => {}

静态方法:20种

对象Object的静态方法:13种(es5)

静态方法是直接通过Object.xx()来直接调用的方法,只要是继承了或者是原型链上有Object这个对象的内容都可以直接使用Object的静态方法.

例如:Date对象、Array数组、Number、String…等这些都是可以直接使用Object.xx()之类的静态方法来返回内容。

1、Object.keys(arr) ------返回一个数组。该数组的成员是该对象的键名。(只返回可枚举的属性)
------对象本身是没有长度的因此可以借助Object.keys(obj).length的方式来获取一个对象的属性个数

2、Object.getOwnPropertyNames() ------ 返回一个数组。该数组的成员是该对象的键名。(返回可枚举和不可枚举的所有属性)

对象属性模型的相关方法

3、Object.getOwnPropertyDescriptor() ------ 获取某个属性的描述对象。

4、Object.defineProperty(obj,prop,desc) ------ 通过描述对象,定义某个属性。
obj 需要定义属性的当前对象;
prop 当前需要定义的属性名;
desc 属性描述符
5、Object.defineProperties() ------ 通过描述对象,定义多个属性。

控制对象状态的方法

6、Object.preventExtensions() ------ 防止对象扩展。
7、Object.isExtensible() ------ 判断对象是否可扩展。

8、Object.seal() ------ 禁止对象配置。
9、Object.isSealed() ------ 判断一个对象是否可配置。

10、Object.freeze() ------ 冻结一个对象。
11、Object.isFrozen() ------ 判断一个对象是否被冻结。

原型链相关方法

12、Object.create() ------ 该方法可以指定原型对象和属性,返回一个新的对象。
13、Object.getPrototypeOf() ------ 获取对象的(Prototype)原型对象。

对象Object的静态方法:7种(es6)

1、Object.is() ------ 比较两个值是否严格相等(与严格比较运算符(===)的行为基本一致,不同之处只有两个:一是+0不等于-0,二是NaN等于自身)
2、Object.assign(target,source…) ------ 用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)
3、Object.getOwnPropertyDescriptors() ------ 返回指定对象所有自身属性(非继承属性)的描述对象
4、Object.setPrototypeOf() ------ 用来设置一个对象的(Prototype)原型对象
5、Object.values() ------ 返回一个数组。该数组的成员是该对象的键值。(只返回可枚举的属性)
6、Object.entries() ------ 返回一个数组,该数组的成员是该对象的键值对数组。(只返回可枚举的属性)
7、Object.fromEntries() ------ 是Object.entries()的逆操作,用于将一个键值对数组转为对象。

实例方法: 6种

对象Object的实例方法:6种

实例方法是通过 new Object() 的形式创建出来的对象所能使用的方法,本质是Object.prototype上面的方法。因此其继承者(即其原型链上能找到Object的对象)也是可以使用的。
var obj = {};
1、obj.valueOf() ------ 返回一个对象对应的值,默认情况下返回对象本身

2、obj.toString() ------ 返回一个对象对应的字符串形式
数组、字符串、函数、Date 对象都分别部署了自定义的toString方法,覆盖了Object.prototype.toString方法。

[1, 2, 3].toString() // "1,2,3"

'123'.toString() // "123"

(function () {
  return 123;
}).toString()
// "function () {
//   return 123;
// }"

(new Date()).toString()
// "Tue May 10 2016 09:11:31 GMT+0800 (CST)"

上面代码中,数组、字符串、函数、Date 对象调用toString方法,并不会返回[object Object],因为它们都自定义了toString方法,覆盖原始方法。

3、obj.toLocaleString() ------ 返回一个对象对应的本地字符串形式。

4、obj.hasOwnProperty() ------ 判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。接受一个字符串作为参数,返回一个布尔值,表示该实例对象自身是否具有该属性。
5、obj.isPrototypeOf() ------ 判断当前对象是否为另一个对象的原型
6、obj.propertyIsEnumerable() ------ 判断当前对象某个属性是否可枚举

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值