JavaScript对象是一个具有状态和行为(属性和方法)的实体。例如:car(汽车),pen(笔),bike(自行车),chair(椅子),glass(玻璃杯),keyboard(键盘),monitor(显示器)等。

JavaScript是一种基于对象的语言。在JavaScript中,一切都是对象。

JavaScript是基于模板而非基于类。在这里,我们不需要创建类来获取对象,我们可以直接创建对象。

在JavaScript中创建对象

有三种方法可以创建对象。

  1. 使用对象字面量
  2. 直接创建Object的实例(使用new关键字)
  3. 使用对象构造函数(使用new关键字)

1)使用对象字面量创建JavaScript对象

使用对象字面量创建对象的语法如下:

var object = { property1: value1, property2: value2, ..., propertyN: valueN };

如你所见,属性和值之间用冒号(:)分隔。

让我们看一个简单的JavaScript对象的例子:

var emp = { id: 102, name: "Shyam Kumar", salary: 40000 };
document.write(emp.id + " " + emp.name + " " + emp.salary);

上述例子的输出

102 Shyam Kumar 40000

2)通过创建Object的实例

直接创建对象的语法如下:

var objectname = new Object();

在这里,使用new关键字来创建对象。

让我们看一个直接创建对象的例子:

var emp = new Object();
emp.id = 101;
emp.name = "Ravi Malik";
emp.salary = 50000;
document.write(emp.id + " " + emp.name + " " + emp.salary);

上述例子的输出

101 Ravi Malik 50000

3)通过对象构造函数

在这里,你需要创建一个带有参数的函数。每个参数值可以通过使用this关键字在当前对象中进行赋值。

关键字this指的是当前对象。

通过对象构造函数创建对象的例子如下:

function Emp(id, name, salary) {
  this.id = id;
  this.name = name;
  this.salary = salary;
}

var e = new Emp(103, "Vimal Jaiswal", 30000);
document.write(e.id + " " + e.name + " " + e.salary);

上述例子的输出

103 Vimal Jaiswal 30000

在JavaScript对象中定义方法

我们可以在JavaScript对象中定义方法。但是,在定义方法之前,我们需要在函数中添加与方法相同名称的属性。

在对象中定义方法的例子如下:

function Emp(id, name, salary) {
  this.id = id;
  this.name = name;
  this.salary = salary;
  
  this.changeSalary = changeSalary;
  function changeSalary(otherSalary) {
    this.salary = otherSalary;
  }
}

var e = new Emp(103, "Sonoo Jaiswal", 30000);
document.write(e.id + " " + e.name + " " + e.salary);
e.changeSalary(45000);
document.write("<br>" + e.id + " " + e.name + " " + e.salary);

上述例子的输出

103 Sonoo Jaiswal 30000
103 Sonoo Jaiswal 45000

JavaScript对象的方法

JavaScript对象的各种方法如下:

序号方法描述
1Object.assign()该方法用于将源对象的可枚举和自有属性复制到目标对象。
2Object.create()该方法用于使用指定的原型对象和属性创建一个新对象。
3Object.defineProperty()该方法用于描述属性的一些行为属性。
4Object.defineProperties()该方法用于创建或配置多个对象属性。
5Object.entries()该方法返回由键值对数组组成的数组。
6Object.freeze()该方法阻止对象的现有属性被删除。
7Object.getOwnPropertyDescriptor()该方法返回指定对象上一个自有属性对应的属性描述符。
8Object.getOwnPropertyDescriptors()该方法返回给定对象的所有自有属性描述符。
9Object.getOwnPropertyNames()该方法返回一个由指定对象的所有自有属性的名称(包括不可枚举属性)组成的数组。
10Object.getOwnPropertySymbols()该方法返回一个给定对象自有符号属性的数组。
11Object.getPrototypeOf()该方法返回指定对象的原型。
12Object.is()该方法确定两个值是否是同一个值。
13Object.isExtensible()该方法确定对象是否是可扩展的。
14Object.isFrozen()该方法确定对象是否被冻结。
15Object.isSealed()该方法确定对象是否被密封。
16Object.keys()该方法返回一个给定对象的所有自有属性的名称(不包括不可枚举属性)组成的数组。
17Object.preventExtensions()该方法用于阻止对象的扩展。
18Object.seal()该方法阻止新属性被添加到对象,并将所有现有属性标记为不可配置。
19Object.setPrototypeOf()该方法将一个指定对象的原型设置为另一个对象。
20Object.values()该方法返回一个由指定对象的所有自有属性的值组成的数组。

标签: js, JavaScript, JavaScript语言, JavaScript开发, JavaScript语法, JavaScript脚本, JavaScript教程, JavaScript入门, JavaScript入门教程, JavaScript进阶, JavaScript宝典, JavaScript学习, JavaScript指南, JavaScript大全