การประกายโอปเจกต์ JavaScript
- หน้าก่อน ประวัติ JS
- หน้าต่อไป คุณสมบัติของวัตถุ JS
在 JavaScript 中,对象是王。如果您理解了对象,就理解了 JavaScript。
在 JavaScript 中,几乎“所有事物”都是对象。
- 布尔是对象(如果用 new 关键词定义)
- 数字是对象(如果用 new 关键词定义)
- 字符串是对象(如果用 new 关键词定义)
- 日期永远都是对象
- 算术永远都是对象
- 正则表达式永远都是对象
- 数组永远都是对象
- 函数永远都是对象
- 对象永远都是对象
所有 JavaScript 值,除了原始值,都是对象。
JavaScript 原始值
原始值指的是没有属性或方法的值。
原始数据类型指的是拥有原始值的数据。
JavaScript 定义了 5 种原始数据类型:
- string
- number
- boolean
- null
- undefined
原始值是一成不变的(它们是硬编码的,因此不能改变)。
假设 x = 3.14,您能够改变 x 的值。但是您无法改变 3.14 的值。
ค่า | 类型 | 注释 |
---|---|---|
"Hello" | string | "Hello" 始终是 "Hello" |
3.14 | number | 3.14 始终是 3.14 |
true | boolean | true 始终是 true |
false | boolean | false 始终是 false |
null | null | (object) null 始终是 null |
undefined | undefined | undefined 始终是 undefined |
对象是包含变量的变量
JavaScript 变量能够包含单个的值:
ตัวอย่าง
var person = "Bill Gates";
对象也是变量。但是对象能够包含很多值。
值按照名称 : 值对的形式编写(名称和值以冒号分隔)。
ตัวอย่าง
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
JavaScript 对象是命名值的集合。
对象属性
JavaScript 对象中的命名值,被称为property。
property | ค่า |
---|---|
firstName | Bill |
lastName | Gates |
age | 62 |
eyeColor | blue |
以名称值对书写的对象类似于:
- PHP 中的关联数组
- Python 中的字典
- hash table ใน C
- hash map ใน Java
- hash ใน Ruby และ Perl
object method
method คือสิ่งที่สามารถทำงานบน objectaction。
object property สามารถเป็นค่าตัวเดี่ยว ตัวเก็บค่าอื่น หรือ function
object methodเป็นส่วนที่function definitionของ Object
property | ค่า |
---|---|
firstName | Bill |
lastName | Gates |
age | 62 |
eyeColor | blue |
fullName | function() {return this.firstName + " " + this.lastName;} |
JavaScript Object คือตัวเก็บค่าที่มีชื่อเรียกว่า property และ method
คุณจะเรียนรู้เกี่ยวกับ method มากยิ่งขึ้นในบทต่อไป:
สร้าง JavaScript Object
ด้วย JavaScript คุณสามารถกำหนดและสร้าง Object ของตัวเองได้:
มีวิธีที่แตกต่างกันในการสร้าง Object:
- กำหนดและสร้าง Object โดยใช้ Object literal
- กำหนดและสร้าง Object โดยใช้คำสั่ง new
- แล้วสร้าง Object ชนิด constructor ต่อมา:
ใน ECMAScript 5 ก็สามารถสร้าง Object constructor ด้วยฟังก์ชัน Object.create()
เพื่อสร้าง Object。
ใช้ Object literal
นี่เป็นวิธีที่ง่ายที่สุดในการสร้าง Object。
ด้วย Object literal คุณสามารถกำหนดและสร้าง Object ในอันหนึ่งอันเดียว:
Object literal หมายถึงเครื่องหมายวงกลม {}
ในชื่อ:ค่า (เช่น age:62)。
ตัวอย่างดังกล่าวก็ได้สร้าง JavaScript Object ใหม่ที่มีสี่คุณสมบัติ:
ตัวอย่าง
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
ช่องว่างและการเลื่อนบรรทัดไม่ได้เป็นประโยชน์ การกำหนด Object สามารถข้ามบรรทัดได้:
ตัวอย่าง
var person = { firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue" };
ใช้คำสั่งพิเศษ JavaScript ว่า new
ตัวอย่างดังกล่าวก็ได้สร้าง JavaScript Object ใหม่ที่มีสี่คุณสมบัติ:
ตัวอย่าง
var person = new Object(); person.firstName = "Bill"; person.lastName = "Gates"; person.age = 50; person.eyeColor = "blue";
ของสองตัวอย่างดังกล่าวมีผลลัพธ์เดียวกัน ไม่จำเป็นต้องใช้ new Object()
。
ด้วยความง่าย ความอ่านได้ง่ายและความเร็วการปฏิบัติงาน ให้ใช้วิธีการสร้างที่หนึ่ง (วิธีการสร้างวัตถุข้อความ)
วัตถุ JavaScript สามารถเปลี่ยนแปลงได้
วัตถุเปลี่ยนแปลงได้ง่าย พวกเขาที่นำเข้าด้วยอนุสัญญาณ ไม่ใช่ด้วยค่า
ถ้า person คือวัตถุ คำสั่งด้านล่างจะไม่สร้างสำเนาของ person
var x = person; // นี่จะไม่สร้างสำเนาของ person
วัตถุ x ไม่ใช่ สำเนา personคือ person.x และ person คือวัตถุเดียวกัน
การเปลี่ยนแปลงใดๆ ที่เกิดขึ้นต่อ x จะเปลี่ยนแปลง person ด้วย เพราะ x และ person คือวัตถุเดียวกัน
ตัวอย่าง
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"} var x = person; x.age = 10; // นี่จะเปลี่ยนแปลงทั้ง x.age และ person.age
หมายเหตุ:ตัวแปร JavaScript ไม่เปลี่ยนแปลงได้ง่าย มีเพียงวัตถุ JavaScript ที่เปลี่ยนแปลงได้
- หน้าก่อน ประวัติ JS
- หน้าต่อไป คุณสมบัติของวัตถุ JS