对象其三

对象特性

原型属性

原型属性是在实例对象创建之初就设置好的。

将对象作为参数传入Object.getPrototypeOf()可以查询它的原型。要想检测一个对象是否是另一个对象的原型(或处于原型链中),使用isPrototypeOf()方法。和instanceof运算符非常类似。

let o = { x: 1 };

let p = Object.create(o);

p.y = 2;

console.log(Object.getPrototypeOf(p));

console.log(o.isPrototypeOf(p));

可扩展性

对象的可扩展性用以表示是否可以给对象添加新属性。

所有内置对象和自定义对象都是显式可扩展的。

宿主对象的可扩展性是由JavaScript引擎定义的。

序列化对象

对象序列化(serialization)是指将对象的状态转换为字符串,也可将字符串还原为对象。

ECMAScript 5提供了内置函数JSON.stringify()JSON.parse()用来序列化和反序列化JavaScript对象。

JSON的全称是"JavaScript Object Notation"——JavaScript对象表示法

注意事项

函数、RegExpError对象和undefined值不能序列化和还原。

JSON.stringify()只能序列化对象可枚举的自有属性。

对于一个不能序列化的属性来说,在序列化后的输出字符串中会将这个属性省略掉。

Object 构造函数的方法

Object构造函数提供了如下方法:

Object.assign():通过复制一个或多个对象来创建一个新的对象。

Object.create():使用指定的原型对象和属性创建一个新对象。

Object.defineProperty():给对象添加一个属性并指定该属性的配置。

Object.defineProperties():给对象添加多个属性并分别指定它们的配置。

Object.entries():返回给定对象自身可枚举属性的 [key, value] 数组。

Object.freeze():冻结对象:其他代码不能删除或更改任何属性。

Object.getOwnPropertyDescriptor():返回对象指定的属性配置。

Object.getOwnPropertyNames():返回一个数组,它包含了指定对象所有的可枚举或不可枚举的属性名。

Object.getOwnPropertySymbols():返回一个数组,它包含了指定对象自身所有的符号属性。

Object.getPrototypeOf():返回指定对象的原型对象。

Object.is():比较两个值是否相同。所有 NaN 值都相等(这与=====不同)。

Object.isExtensible():判断对象是否可扩展。

Object.isFrozen():判断对象是否已经冻结。

Object.isSealed()判断对象是否已经密封。

Object.keys()返回一个包含所有给定对象自身可枚举属性名称的数组。

Object.preventExtensions():防止对象的任何扩展。

Object.seal()防止其他代码删除对象的属性。

Object.setPrototypeOf():设置对象的原型(即内部 [[Prototype]] 属性)。

Object.values():返回给定对象自身可枚举值的数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值