首页 > web前端 > js教程 > 正文

JavaScript 中的对象

Patricia Arquette
发布: 2024-11-19 08:50:03
原创
134 人浏览过

Objetos em JavaScript

我正在开始一系列有关 JavaScript 概念的帖子,而这仅仅是开始。在第一篇文章中,我们将探讨对象的基本概念,这对于理解数据结构在 JavaScript 中的工作原理至关重要。

请继续关注下一篇文章,它将继续本文和其他几个主题。


什么是对象?

现实世界中,对象是实体(真实的或抽象的)。例如:铅笔、汽车、笔记本。这些对象中的每一个都有特定的属性。例如:一辆蓝色汽车、一支红色铅笔或一本大笔记本。

在 JavaScript 中,对象是收集属性的独立实体。属性是名称和值之间的关联,即描述对象的信息。

const carro = {
  cor: "amarelo",
  tamanho: "grande",
};
登录后复制
登录后复制

在此示例中,颜色和尺寸是汽车对象的属性,并且每个属性都有一个关联值。

创建对象

文字语法

文字对象以简单直接的方式创建,其中值已经手动定义。当您的对象有一组固定的属性时,此语法非常理想。

const pessoa = {
  nome: "João",
  idade: 19,
  rua: "Rua Erva Daninha",
};
登录后复制
登录后复制

当属性不经常更改或需要快速创建具有固定值的对象时,这种类型的对象非常有用。

构造函数

构造函数用于动态创建对象,特别是当您需要多个相似的对象时。当使用 new 关键字时,会创建一个引用构造函数的新对象。

function NomeDoConstrutor(parâmetros) {

  this.propriedade1 = valor1;
  this.propriedade2 = valor2;

  this.método = function() {
    // Código do método
  };
}

const variavel1 = new NomeDoConstrutor(parâmetros)
const variavel2 = new NomeDoConstrutor(parâmetros)
登录后复制
登录后复制

作为一个更传统且不太学术的例子:

function Pessoa(nome, idade) {
  this.nome = nome;
  this.idade = idade;

  this.cumprimentar = function () {
    console.log("Olá, meu nome é " + this.nome);
  };
}

const pessoa1 = new Pessoa("João", 30);
const pessoa2 = new Pessoa("Maria", 25);

pessoa1.cumprimentar(); // Olá, meu nome é João
pessoa2.cumprimentar(); // Olá, meu nome é Maria
登录后复制

在这种情况下,输出将被“标记”为 Person 函数规定的模型中的 person1 和 person2 变量分配的值。

这个词的使用

在构造函数中,我们使用 this 关键字来引用正在创建的对象。这允许您定义对象的动态属性和方法。

例如上面的代码中,this.name和this.age定义了对象的属性,而greet方法是与该对象关联的函数。

构造函数中的继承

JavaScript 中的继承是通过原型实现的。您不是直接从另一个对象创建一个对象,而是创建一个层次结构,其中一个对象可以从另一个对象继承属性和方法。这是使用 call 或 apply 方法完成的。

const carro = {
  cor: "amarelo",
  tamanho: "grande",
};
登录后复制
登录后复制
继承是如何运作的?

当我们使用 Pessoa.call(this, nome) 时,我们正在调用 Pessoa 构造函数并传递 Student 对象的上下文。这使得student1对象继承了Person的name属性,并且还拥有了age属性,这是Student函数独有的。

当需要创建多个具有许多属性和具有变量值的方法的对象时,最常使用构造函数。在这种情况下,最好使用构造函数对象作为“标记”,而不是手动编写多个对象。

构造函数对象

使用构造函数创建的对象是由new运算符生成的实例。每个实例都有自己的属性,但共享构造函数原型中定义的方法。

这意味着,如果您从构造函数创建多个对象,它们将具有相同的方法,但属性值不同。

const pessoa = {
  nome: "João",
  idade: 19,
  rua: "Rua Erva Daninha",
};
登录后复制
登录后复制
  • 在这种情况下,new 运算符创建一个新对象,将上下文 (this) 绑定到构造函数

  • 对于共享方法,添加构造函数的原型会更加高效。这可以避免内存重复。

function NomeDoConstrutor(parâmetros) {

  this.propriedade1 = valor1;
  this.propriedade2 = valor2;

  this.método = function() {
    // Código do método
  };
}

const variavel1 = new NomeDoConstrutor(parâmetros)
const variavel2 = new NomeDoConstrutor(parâmetros)
登录后复制
登录后复制

通过在构造函数的原型中定义方法,我们可以避免代码重复。它们不是每个对象都有该方法的副本,而是共享相同的方法,从而节省内存。

new 运算符创建一个新对象,并将上下文 (this) 绑定到构造函数。

对于共享方法,将它们添加到构造函数的原型中会更高效,避免内存中的重复。

以上是JavaScript 中的对象的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板