object静态方法 和原型对象

本文深入解析JavaScript中对象的各种内置方法,包括属性检测、原型链测试、属性枚举性检查、对象字符串表示、属性赋值、对象创建、冻结、密封、比较、扩展性检查、属性定义、获取描述符、获取属性名、获取符号属性、获取原型、获取属性值、获取属性键值对及从键值对创建对象的方法。涵盖了从ES5到ES6+的重要特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.hasOwnProperty(‘property’)所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。
这个方法可以用来检测一个对象是否含有特定的自身属性;
和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性。
2.isPrototypeOf(protoObj) 方法用于测试一个对象是否存在于另一个对象的原型链上。 Animal.prototype.isPrototypeOf(erHa)
3.propertyIsEnumerable() 方法返回一个布尔值,表示指定的属性是否可枚举。
4.toString() 方法返回一个表示该对象的字符串。 返回 “[object type]”,其中type是对象的类型。
5.valueof

Object 构造函数的静态方法
1.Object.assign(target, source) 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
2.Object.create(proto, [propertiesObject]) 方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。
3.*Object.freeze() 方法可以冻结一个对象。
4.Object.seal()方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要可写就可以改变。

5.Object.is() 判断两个值是否相同。如果下列任何一项成立,则两个值相同:
6.Object.isExtensible() 方法判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。
7.Object.isFrozen()方法判断一个对象是否被冻结。
8.*Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

9*.Object.getOwnPropertyDescriptor()
10*.Object.getOwnPropertyNames()方法返回一个由指定对象的所有自身属性的(属性名 important)
(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
11*.Object.getOwnPropertySymbols() 您可以将给定对象的所有符号属性作为 Symbol 数组获取。
12*.bject.getPrototypeOf() 方法返回指定对象的原型(内部[[Prototype]]属性的值)。

13*.Object.keys() 方法会返回一个由一个给定对象的自身可枚举 属性组成的数组,
数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致 。
14.Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组,
值的顺序与使用for…in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。
15.Object.entries()返回一个数组,其元素是与直接在object上找到的可枚举属性键值对*相对应的数组。属性的顺序与通过手动循环对象的属性值所给出的顺序相同。
const obj = { foo: ‘bar’, baz: 42 };
console.log(Object.entries(obj)); // [ [‘foo’, ‘bar’], [‘baz’, 42] ]
16.*Object.fromEntries() 函数传入一个键值对的列表,并返回一个带有这些键值对的新对象。

Object静态方法实例方法如下: 静态方法: 1. Object.assign():用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。 2. Object.create():用指定的原型对象属性创建一个新对象。 3. Object.defineProperty():定义一个新属性或修改一个已有属性的特性。 4. Object.defineProperties():定义或修改一个或多个属性的特性。 5. Object.entries():返回一个给定对象自身可枚举属性的键值对数组。 6. Object.freeze():冻结一个对象,使其属性不可修改。 7. Object.fromEntries():将键值对列表转换为一个对象。 8. Object.getOwnPropertyDescriptor():获取指定对象上一个属性的描述符。 9. Object.getOwnPropertyDescriptors():返回一个对象的所有自身属性的描述符。 10. Object.getOwnPropertyNames():返回一个数组,包含指定对象的所有非继承可枚举属性的名称。 11. Object.getOwnPropertySymbols():返回一个数组,包含指定对象的所有Symbol属性的名称。 12. Object.getPrototypeOf():返回指定对象原型。 13. Object.is():比较两个值是否相同。 14. Object.isExtensible():判断一个对象是否可扩展。 15. Object.isFrozen():判断一个对象是否已被冻结。 16. Object.isSealed():判断一个对象是否已被密封。 17. Object.keys():返回一个数组,包含指定对象的所有非继承可枚举属性的名称。 18. Object.preventExtensions():防止一个对象被扩展。 19. Object.seal():密封一个对象,使其属性不可删除或添加。 20. Object.setPrototypeOf():设置指定对象原型。 实例方法: 1. Object.prototype.hasOwnProperty():判断一个对象是否含有指定的属性。 2. Object.prototype.isPrototypeOf():判断一个对象是否是另一个对象原型。 3. Object.prototype.propertyIsEnumerable():判断一个属性是否可枚举。 4. Object.prototype.toLocaleString():返回对象的本地化字符串表示。 5. Object.prototype.toString():返回对象的字符串表示。 6. Object.prototype.valueOf():返回对象的原始值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值