对象

Frontend SELF ZH
第 36 级 , 课程 0
可用

6.1 创建对象

对象 是 JavaScript 中的基本数据类型之一,广泛用于存储和管理数据。 对象是一个 属性的集合,其中每个属性由键(名称)和值组成。在这节课中,我们将探讨对象的创建,以及如何访问它们的属性和方法。

1. 对象字面量

在 JavaScript 中最常见的创建对象的方法是使用对象字面量。

在这个例子中,我们创建了一个对象 person,它有四个属性:nameageisStudentgreet

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        isStudent: false,
        greet: function() {
          return 'Hello!';
        }
      };
    
  

2. Object 构造函数

对象也可以使用 Object() 构造函数创建。

这种方法等效于使用对象字面量创建对象,但更为冗长:

JavaScript
    
      let person = new Object();
      person.name = 'John';
      person.age = 30;
      person.isStudent = false;
      person.greet = function() {
        return 'Hello!';
      };
    
  

3. 构造函数

构造函数允许创建具有相同属性和方法的多个对象实例。

在这个例子中,构造函数 Person() 用于创建对象 johnjane,它们具有相同的属性和方法:

JavaScript
    
      function Person(name, age, isStudent) {
        this.name = name;
        this.age = age;
        this.isStudent = isStudent;
        this.greet = function() {
          return 'Hello!';
        };
      }

      let john = new Person('John', 30, false);
      let jane = new Person('Jane', 25, true);
    
  

4. 方法 Object.create()

方法 Object.create() 使用指定的原型和属性创建一个新对象。

在这个例子中,对象 john 是基于原型 personPrototype 创建的:

JavaScript
    
      let personPrototype = {
        greet: function() {
          return 'Hello!';
        }
      };

      let john = Object.create(personPrototype);
      john.name = 'John';
      john.age = 30;
      john.isStudent = false;
    
  

6.2 访问属性和方法

1. 用点访问

访问对象的属性和方法的最常见的方法是通过点语法:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        greet: function() {
          return 'Hello!';
        }
      };

      console.log(person.name);  // 将输出: John
      console.log(person.age);   // 将输出: 30
      console.log(person.greet()); // 将输出: Hello!
    
  

2. 用方括号访问

对象的属性也可以通过方括号访问。当属性名存储在变量中或包含空格或特殊字符时,这种方法很有用:

JavaScript
    
      let person = {
        'first name': 'John',
        age: 30,
        greet: function() {
          return 'Hello!';
        }
      };

      console.log(person['first name']); // 将输出: John
      console.log(person['age']);        // 将输出: 30

      let propertyName = 'greet';
      console.log(person[propertyName]()); // 将输出: Hello!
    
  

3. 修改和添加属性

对象的属性可以随时修改或添加:

JavaScript
    
      let person = {
        name: 'John',
        age: 30
      };

      // 修改现有属性
      person.age = 31;
      console.log(person.age); // 将输出: 31

      // 添加新属性
      person.isStudent = false;
      console.log(person.isStudent); // 将输出: false
    
  

4. 删除属性

对象的属性可以通过 delete 操作符删除:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        isStudent: false
      };

      delete person.isStudent;
      console.log(person.isStudent); // 将输出: undefined
    
  

6.3 遍历对象的属性

1. for...in 循环

for...in 循环允许遍历对象的所有可枚举属性:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        isStudent: false
      };

      for (let key in person) {
        console.log(`${key}: ${person[key]}`);
      }

      // 将输出:
      // name: John
      // age: 30
      // isStudent: false
    
  

2. 方法 Object.keys()

方法 Object.keys() 返回对象的所有可枚举属性的数组:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        isStudent: false
      };

      let keys = Object.keys(person);
      console.log(keys); // 将输出: ['name', 'age', 'isStudent']
    
  

3. 方法 Object.values()

方法 Object.values() 返回对象所有可枚举属性的值的数组:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        isStudent: false
      };

      let values = Object.values(person);

      console.log(values); // 将输出: ['John', 30, false]
    
  

4. 方法 Object.entries()

方法 Object.entries() 返回对象所有可枚举属性的 [键, 值] 对的数组:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        isStudent: false
      };

      let entries = Object.entries(person);

      console.log(entries); // 将输出: [['name', 'John'], ['age', 30], ['isStudent', false]]
    
  

6.4 检查属性是否存在

1. 操作符 in

操作符 in 用于检查对象中是否存在某个属性:

JavaScript
    
      let person = {
        name: 'John',
        age: 30
      };

      console.log('name' in person); // 将输出: true
      console.log('isStudent' in person); // 将输出: false
    
  

2. 方法 hasOwnProperty()

方法 hasOwnProperty() 检查对象是否具有指定的属性作为其自身的(不是继承的):

JavaScript
    
      let person = {
        name: 'John',
        age: 30
      };

      console.log(person.hasOwnProperty('name')); // 将输出: true
      console.log(person.hasOwnProperty('isStudent')); // 将输出: false
    
  
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION