JavaScript - Objects: A Beginner's Guide

你好,有志於成為程序員的你!我很高興能成為你進入JavaScript對象世界的導師。作為一個教導編程多年的老師,我可以告訴你,理解對象就像是解鎖了JavaScript的一個秘密超能力。那麼,我們一起來探索吧!

JavaScript - Objects

What Are JavaScript Objects?

想像你正在描述你的寵物狗。你可能會說它有一個名字、年齡、品種和最喜歡的玩具。在JavaScript中,我們可以把這隻狗表示為一個對象,將所有這些特徵作為它的屬性。讓我們創建我們的第一個對象:

let myDog = {
name: "Buddy",
age: 3,
breed: "Golden Retriever",
favoriteToy: "吱吱球"
};

這就是我們所謂的對象字面量。它就像一個容器,保存了相關的信息。每個信息都是一個屬性,有一個名稱(如 "name" 或 "age")和一個值(如 "Buddy" 或 3)。

Object Properties

現在我們有了 myDog 對象,我們如何訪問它的屬性呢?有兩種方法:

  1. 點語法:

    console.log(myDog.name); // 輸出:Buddy
  2. 方括號語法:

    console.log(myDog["age"]); // 輸出:3

兩者都做同樣的事情,但方括號語法在屬性名存儲在變量中或含有空格時很方便。

我們也可以給我們的對象添加新的屬性:

myDog.isGoodBoy = true;
console.log(myDog.isGoodBoy); // 輸出:true

或者修改現有的屬性:

myDog.age = 4;
console.log(myDog.age); // 輸出:4

Object Methods

方法是属于对象的功能。它们就像是我们对象可以执行的动作。让我们给我们的 myDog 对象添加一个方法:

myDog.bark = function() {
console.log("汪汪汪!");
};

myDog.bark(); // 輸出:汪汪汪!

现在我们的狗可以叫了!這不是很酷嗎?

Creating New Objects

我们已经看到了如何使用对象字面量创建对象,但还有另一种使用 Object() 构造函数的方法:

let myCat = new Object();
myCat.name = "Whiskers";
myCat.age = 5;
myCat.meow = function() {
console.log("喵喵!");
};

myCat.meow(); // 輸出:喵喵!

这种方法不常见,但知道它存在是有用的。

Defining Methods for an Object

我们可以在创建对象时定义方法,就像我们定义属性一样:

let myParrot = {
name: "Polly",
age: 2,
speak: function() {
console.log("Polly wants a cracker!");
}
};

myParrot.speak(); // 輸出:Polly wants a cracker!

也有一种简写的方式来定义方法:

let myHamster = {
name: "Fuzzy",
age: 1,
run() {
console.log("在輪子上跑!");
}
};

myHamster.run(); // 輸出:在輪子上跑!

The 'with' Keyword

with 关键字可以让你在多次操作同一对象的属性时使代码更短:

with(myDog) {
console.log(name);
console.log(age);
bark();
}

然而,使用 with 时要小心,因为它可以使你的代码变得不那么清晰,并且在严格模式下不推荐使用。

JavaScript Native Objects

JavaScript 提供了几个内置对象,它们提供了有用的功能。以下是一些最常见的内容:

对象 描述
String 表示和操作文本
Number 表示数值
Boolean 表示真/假值
Array 表示一组值
Math 提供数学运算
Date 表示日期和时间

让我们看一些例子:

let greeting = "Hello, World!";
console.log(greeting.length); // 輸出:13

let pi = Math.PI;
console.log(pi); // 輸出:3.141592653589793

let today = new Date();
console.log(today); // 輸出:当前日期和时间

JavaScript Object Methods

JavaScript 中的对象自带一些内置方法。以下是一些重要的方法:

方法 描述
Object.keys() 返回一个包含对象所有属性名的数组
Object.values() 返回一个包含对象所有属性值的数组
Object.entries() 返回一个包含对象 [键, 值] 对的数组
Object.assign() 将一个对象的属性复制到另一个对象

让我们看看这些方法的使用:

let keys = Object.keys(myDog);
console.log(keys); // 輸出:["name", "age", "breed", "favoriteToy", "isGoodBoy", "bark"]

let values = Object.values(myDog);
console.log(values); // 輸出:["Buddy", 4, "Golden Retriever", "吱吱球", true, ƒ]

let entries = Object.entries(myDog);
console.log(entries); // 輸出: [["name", "Buddy"], ["age", 4], ...]

let newDog = Object.assign({}, myDog);
console.log(newDog); // 輸出:myDog 的副本

就是这样!你已经迈出了进入JavaScript对象世界的第一步。记住,熟能生巧,所以不要害怕尝试创建你自己的对象和方法。在你知道之前,你将像专业人士一样玩转对象!

快乐编码,愿你的对象永远无虫!

Credits: Image by storyset