JavaScript - Objects: A Beginner's Guide
你好,有志於成為程序員的你!我很高興能成為你進入JavaScript對象世界的導師。作為一個教導編程多年的老師,我可以告訴你,理解對象就像是解鎖了JavaScript的一個秘密超能力。那麼,我們一起來探索吧!
What Are JavaScript Objects?
想像你正在描述你的寵物狗。你可能會說它有一個名字、年齡、品種和最喜歡的玩具。在JavaScript中,我們可以把這隻狗表示為一個對象,將所有這些特徵作為它的屬性。讓我們創建我們的第一個對象:
let myDog = {
name: "Buddy",
age: 3,
breed: "Golden Retriever",
favoriteToy: "吱吱球"
};
這就是我們所謂的對象字面量。它就像一個容器,保存了相關的信息。每個信息都是一個屬性,有一個名稱(如 "name" 或 "age")和一個值(如 "Buddy" 或 3)。
Object Properties
現在我們有了 myDog
對象,我們如何訪問它的屬性呢?有兩種方法:
-
點語法:
console.log(myDog.name); // 輸出:Buddy
-
方括號語法:
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