目录

对象创建与复制:

Object.assign(target,...sources): 用于将源对象的可枚举属性复制到目标对象,并返回目标对象。

Object.create(proto, [propertiesObject]) (不太常用):使用指定的原型对象和属性创建一个新对象。

Object.fromEntries(iterable) (不太常用):把键值对列表转换为对象。

对象属性定义与操作:

Object.defineProperties(obj, properties) (不太常用):直接在一个对象上定义新的属性或修改现有属性的特性。

Object.defineProperty(obj, prop, descriptor) (不太常用):为对象定义单个属性,并可以指定属性的特性,如可写、可枚举、可配置等。

对象属性获取:

Object.entries(obj):返回一个给定对象自身可枚举属性的键值对数组。

Object.getOwnPropertyDescriptor(obj, prop) (不太常用):返回指定对象的自有属性描述符。

Object.getOwnPropertyNames(obj):返回一个数组,包含对象自身的所有属性名(包括不可枚举属性)。

Object.getOwnPropertySymbols(obj) (不太常用):返回一个数组,包含对象自身的所有 Symbol 属性名。

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

Object.keys(obj):返回一个数组,包含对象自身的可枚举属性名。

Object.values(obj):返回一个数组,包含对象自身的可枚举属性值。

对象状态与特性:

Object.freeze(obj) (不太常用):冻结一个对象,使其属性不可修改、添加或删除。

Object.preventExtensions(obj) (不太常用):防止对象添加新属性。

Object.seal(obj) (不太常用):密封一个对象,使其现有属性不可配置,但属性仍然可写。

对象比较与检测:

Object.is(obj1, obj2):比较两个值是否严格相等。

Object.hasOwnProperty(prop):检查对象自身是否具有指定的属性。

Object.isExtensible(obj) (不太常用):确定对象是否是可扩展的(即是否可以添加新属性)。

对象的字符串表示:

Object.toLocaleString() (不太常用):返回对象的本地化字符串表示。

Object.toString(): 返回对象的字符串表示。通常默认的 Object.prototype.toString() 方法返回的字符串格式为 [object Type],其中 Type 是对象的类型。


对象创建与复制

  • Object.assign(target,...sources): 用于将源对象的可枚举属性复制到目标对象,并返回目标对象。

    let target = { name: 'Alice' };
    let source = { age: 25 };
    let result = Object.assign(target, source);
    console.log(result); 
  • Object.create(proto, [propertiesObject]) (不太常用):使用指定的原型对象和属性创建一个新对象。

    let proto = { method: function() { console.log('Method in proto'); } };
    let obj = Object.create(proto, { property: { value: 42 } });
    obj.method(); 
  • Object.fromEntries(iterable) (不太常用):把键值对列表转换为对象。

    let entries = [['name', 'Bob'], ['age', 30]];
    let obj = Object.fromEntries(entries);
    console.log(obj);

对象属性定义与操作

  • Object.defineProperties(obj, properties) (不太常用):直接在一个对象上定义新的属性或修改现有属性的特性。

    let obj = {};
    Object.defineProperties(obj, {
      name: {
        value: 'John',
        writable: true
      },
      age: {
        value: 35,
        writable: false
      }
    });
  • Object.defineProperty(obj, prop, descriptor) (不太常用):为对象定义单个属性,并可以指定属性的特性,如可写、可枚举、可配置等。

    let obj = {};
    Object.defineProperty(obj, 'property', {
      value: 42,
      writable: false
    });

对象属性获取

  • Object.entries(obj):返回一个给定对象自身可枚举属性的键值对数组。

    let obj = { name: 'Alice', age: 25 };
    let entries = Object.entries(obj);
    console.log(entries); 
  • Object.getOwnPropertyDescriptor(obj, prop) (不太常用):返回指定对象的自有属性描述符。

    let obj = { property: 42 };
    let descriptor = Object.getOwnPropertyDescriptor(obj, 'property');
    console.log(descriptor);
  • Object.getOwnPropertyNames(obj):返回一个数组,包含对象自身的所有属性名(包括不可枚举属性)。

    let obj = { name: 'Alice', age: 25 };
    let names = Object.getOwnPropertyNames(obj);
    console.log(names); 
  • Object.getOwnPropertySymbols(obj) (不太常用):返回一个数组,包含对象自身的所有 Symbol 属性名。

    let sym = Symbol('mySymbol');
    let obj = { [sym]: 'Symbol Value' };
    let symbols = Object.getOwnPropertySymbols(obj);
    console.log(symbols);
  • Object.getPrototypeOf(obj):返回指定对象的原型。

    let obj = {};
    let proto = Object.getPrototypeOf(obj);
    console.log(proto); 
  • Object.keys(obj):返回一个数组,包含对象自身的可枚举属性名。

    let obj = { name: 'Alice', age: 25 };
    let keys = Object.keys(obj);
    console.log(keys); 
  • Object.values(obj):返回一个数组,包含对象自身的可枚举属性值。

    let obj = { name: 'Alice', age: 25 };
    let values = Object.values(obj);
    console.log(values); 

对象状态与特性

  • Object.freeze(obj) (不太常用):冻结一个对象,使其属性不可修改、添加或删除。

    let obj = { name: 'Alice' };
    Object.freeze(obj);
    obj.name = 'Bob'; 
  • Object.preventExtensions(obj) (不太常用):防止对象添加新属性。

    let obj = { name: 'Alice' };
    Object.preventExtensions(obj);
    obj.age = 25; 
  • Object.seal(obj) (不太常用):密封一个对象,使其现有属性不可配置,但属性仍然可写。

    let obj = { name: 'Alice' };
    Object.seal(obj);
    delete obj.name; 

对象比较与检测

  • Object.is(obj1, obj2):比较两个值是否严格相等。

    let num1 = +0;
    let num2 = -0;
    console.log(Object.is(num1, num2)); 
  • Object.hasOwnProperty(prop):检查对象自身是否具有指定的属性。

    let obj = { name: 'Alice' };
    console.log(obj.hasOwnProperty('name')); 
  • Object.isExtensible(obj) (不太常用):确定对象是否是可扩展的(即是否可以添加新属性)。

    let obj = {};
    console.log(Object.isExtensible(obj)); 

对象的字符串表示

  • Object.toLocaleString() (不太常用):返回对象的本地化字符串表示。

    let date = new Date();
    console.log(date.toLocaleString());
  • Object.toString(): 返回对象的字符串表示。通常默认的 Object.prototype.toString() 方法返回的字符串格式为 [object Type],其中 Type 是对象的类型。

    let obj = {};
    console.log(obj.toString()); 
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐