object的方法详解

一、Object.create()

Object.create()方法可以用于创建一个新对象,新对象的原型指向指定对象。具体来说,该方法接收参数:Object.create(proto, [propertiesObject]),其中proto表示新对象的原型,propertiesObject表示对象的属性,是可选参数。

示例代码:

    const parent = {
      name: "Parent",
      printName() {
        console.log(this.name);
      }
    };
    
    const child = Object.create(parent);
    child.name = "Child";
    child.printName(); // Child

上述示例中,通过Object.create()方法创建了一个新对象childchild的原型指向parent。子对象可以覆盖父对象的属性和方法,如代码中的name属性。通过child.printName()方法调用,输出的是child对象的name属性。

二、Object.defineProperty()

Object.defineProperty()方法可以用于在对象上定义一个新属性或修改已有属性的特性。具体来说,该方法接收参数:Object.defineProperty(obj, prop, descriptor),其中obj表示要定义属性的对象,prop表示要定义的属性名,descriptor表示属性的描述符,是一个对象。

示例代码:

    const obj = {};

    Object.defineProperty(obj, "name", {
      value: "Alice",
      writable: false,
      enumerable: true,
      configurable: true
    });

    console.log(obj.name);      // Alice
    obj.name = "Bob";   // 尝试修改name属性
    console.log(obj.name);      // Alice,因为writable为false

上述示例中,通过Object.defineProperty()方法在obj对象上定义了一个name属性,value表示属性值为”Alice”,writable表示属性不可修改(即只读),enumerable表示属性可枚举,configurable表示属性可被删除或重新设置特性。

三、Object.defineProperties()

Object.defineProperties()方法与Object.defineProperty()类似,但可以定义多个属性。具体来说,该方法接收参数:Object.defineProperties(obj, props),其中obj表示要定义属性的对象,props表示要定义的属性,是一个对象。

示例代码:

    const obj = {};
  
    Object.defineProperties(obj, {
      name: {
        value: "Alice",
        writable: false,
        enumerable: true,
        configurable: true
      },
      age: {
        value: 25,
        writable: true,
        enumerable: true,
        configurable: true
      }
    });

    console.log(obj.name);  // Alice
    obj.name = "Bob";  // 尝试修改name属性
    console.log(obj.name);  // Alice,因为writable为false

    console.log(obj.age);   // 25
    obj.age = 30;    // 尝试修改age属性
    console.log(obj.age);   // 30,由于writable为true,属性可以修改

上述示例中,通过Object.defineProperties()方法在obj对象上一次性定义了两个属性nameagename属性是只读的,age属性是可读写的。

四、Object.getOwnPropertyDescriptors()

Object.getOwnPropertyDescriptors()方法可以获取一个对象的所有自身属性的描述符。具体来说,该方法接收参数:Object.getOwnPropertyDescriptors(obj),其中obj表示要获取属性描述符的对象。

示例代码:

    const obj = {
      name: {
        value: "Alice",
        writable: false
      },
      age: {
        value: 25,
        writable: true
      }
    };
  
    const descriptors = Object.getOwnPropertyDescriptors(obj);
    console.log(descriptors);

上述示例中,通过Object.getOwnPropertyDescriptors()方法获取了obj对象的所有自身属性的描述符,并将结果输出到控制台。

五、Object.freeze()

Object.freeze()方法可以冻结一个对象,使其属性不可修改、删除或添加。具体来说,该方法接收参数:Object.freeze(obj),其中obj表示要冻结的对象。

示例代码:

    const obj = {
      name: "Alice",
      age: 25
    };

    Object.freeze(obj);
    obj.name = "Bob";    // 尝试修改name属性
    obj.gender = "female";  // 尝试添加gender属性
    delete obj.age;      // 尝试删除age属性

    console.log(obj);    // 输出{ name: 'Alice', age: 25 }

上述示例中,通过Object.freeze()方法冻结了obj对象,使其属性不可修改、删除或添加。尝试修改、添加或删除对象的属性均会被忽略。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/246783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:17
下一篇 2024-12-12 13:17

相关推荐

  • 解决.net 6.0运行闪退的方法

    如果你正在使用.net 6.0开发应用程序,可能会遇到程序闪退的情况。这篇文章将从多个方面为你解决这个问题。 一、代码问题 代码问题是导致.net 6.0程序闪退的主要原因之一。首…

    编程 2025-04-29
  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • Python创建分配内存的方法

    在python中,我们常常需要创建并分配内存来存储数据。不同的类型和数据结构可能需要不同的方法来分配内存。本文将从多个方面介绍Python创建分配内存的方法,包括列表、元组、字典、…

    编程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一个类的构造函数,在创建对象时被调用。在本篇文章中,我们将从多个方面详细讨论init方法的作用,使用方法以及注意点。 一、定义init方法 在Pyth…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • 使用Vue实现前端AES加密并输出为十六进制的方法

    在前端开发中,数据传输的安全性问题十分重要,其中一种保护数据安全的方式是加密。本文将会介绍如何使用Vue框架实现前端AES加密并将加密结果输出为十六进制。 一、AES加密介绍 AE…

    编程 2025-04-29
  • 用不同的方法求素数

    素数是指只能被1和自身整除的正整数,如2、3、5、7、11、13等。素数在密码学、计算机科学、数学、物理等领域都有着广泛的应用。本文将介绍几种常见的求素数的方法,包括暴力枚举法、埃…

    编程 2025-04-29
  • Python学习笔记:去除字符串最后一个字符的方法

    本文将从多个方面详细阐述如何通过Python去除字符串最后一个字符,包括使用切片、pop()、删除、替换等方法来实现。 一、字符串切片 在Python中,可以通过字符串切片的方式来…

    编程 2025-04-29
  • 用法介绍Python集合update方法

    Python集合(set)update()方法是Python的一种集合操作方法,用于将多个集合合并为一个集合。本篇文章将从以下几个方面进行详细阐述: 一、参数的含义和用法 Pyth…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29

发表回复

登录后才能评论