วัตถุ JavaScript
ใน JavaScript วัตถุเป็นกษัตริย์ หากคุณเข้าใจวัตถุคุณเข้าใจ JavaScript
ใน JavaScript เกือบทุกอย่าง "" เป็นวัตถุ
- Booleans สามารถวัตถุ (หรือข้อมูลดั้งเดิมถือว่าเป็นวัตถุ)
- Numbers สามารถวัตถุ (หรือข้อมูลดั้งเดิมถือว่าเป็นวัตถุ)
- Strings สามารถวัตถุ (หรือข้อมูลดั้งเดิมถือว่าเป็นวัตถุ)
- Dates อยู่เสมอวัตถุ
- Maths อยู่เสมอวัตถุ
- Regular การแสดงออกอยู่เสมอวัตถุ
- Arrays อยู่เสมอวัตถุ
- Functions อยู่เสมอวัตถุ
- Objects เป็นวัตถุ
ใน JavaScript ค่าทั้งหมดยกเว้นค่าดั้งเดิมเป็นวัตถุ
ค่าดั้งเดิมคือสตริง ("John Doe") , ตัวเลข (3.14), true, false, null และ undefined
วัตถุที่เป็นตัวแปรที่มีตัวแปร
ตัวแปร JavaScript ที่สามารถมีค่าเดียว:
วัตถุที่เป็นตัวแปรมากเกินไป แต่วัตถุที่สามารถมีค่าจำนวนมาก
ค่าที่ถูกเขียนเป็นชื่อ: คู่ค่า (ชื่อและค่าที่คั่นด้วยเครื่องหมาย)
วัตถุ JavaScript เป็นคอลเลกชันของค่าชื่อ
คุณสมบัติของวัตถุ
ค่าชื่อในวัตถุ JavaScript จะถูกเรียกว่าคุณสมบัติ
คุณสมบัติ | ความคุ้มค่า |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
วัตถุที่เขียนเป็นคู่ค่าชื่อคล้ายกับ:
- เชื่อมโยงอาร์เรย์ใน PHP
- พจนานุกรมในหลาม
- ตารางกัญชาใน C
- แผนที่กัญชาในชวา
- hashes ใน Ruby และ Perl
วิธีการของวัตถุ
วิธีการดำเนินการที่สามารถดำเนินการในวัตถุ
คุณสมบัติของวัตถุสามารถทั้งสองค่าดั้งเดิมวัตถุอื่น ๆ และฟังก์ชั่น
วิธีการที่วัตถุที่เป็นทรัพย์สินวัตถุที่มีความคมชัดฟังก์ชั่น
คุณสมบัติ | ความคุ้มค่า |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function() {return this.firstName + " " + this.lastName;} |
วัตถุ JavaScript เป็นภาชนะสำหรับค่าชื่อคุณสมบัติและวิธีการที่เรียกว่า
คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับวิธีการในบทต่อไป
การสร้างวัตถุ JavaScript
ด้วย JavaScript คุณสามารถกำหนดและสร้างวัตถุของคุณเอง
มีวิธีการที่แตกต่างกันในการสร้างวัตถุใหม่:
- กำหนดและสร้างวัตถุเดียวโดยใช้วัตถุที่แท้จริง
- กำหนดและสร้างวัตถุเดียวกับใหม่คำหลัก
- กำหนดตัวสร้างวัตถุแล้วสร้างวัตถุชนิดสร้าง
ใน ECMAScript 5 วัตถุนอกจากนี้ยังสามารถสร้างขึ้นด้วยฟังก์ชั่น Object.create()
การใช้วัตถุตามตัวอักษร
นี้เป็นวิธีที่ง่ายที่สุดในการสร้างวัตถุ JavaScript
โดยใช้วัตถุที่แท้จริงที่คุณทั้งสองกำหนดและสร้างวัตถุในงบหนึ่ง
วัตถุที่แท้จริงคือรายการของชื่อ: คู่ค่า (เช่น age:50 ) ภายในวงเล็บปีกกา {}
ตัวอย่างต่อไปนี้สร้างวัตถุ JavaScript ใหม่ที่มีคุณสมบัติที่สี่:
ช่องว่างและการขึ้นบรรทัดใหม่ไม่สำคัญ คำนิยามวัตถุสามารถขยายหลายบรรทัด:
โดยใช้คำสำคัญที่ใช้ JavaScript ใหม่
ตัวอย่างต่อไปนี้ยังสร้างวัตถุ JavaScript ใหม่ที่มีคุณสมบัติที่สี่:
ตัวอย่าง
var
person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
ลองตัวเอง» สองตัวอย่างข้างต้นไม่เหมือนกัน ไม่มีความจำเป็นที่จะใช้เป็น new Object()
สำหรับความเรียบง่ายอ่านง่ายและความเร็วในการดำเนินการใช้ครั้งแรก (Object วิธีการตามตัวอักษร)
ใช้สร้างวัตถุ
ตัวอย่างข้างต้นจะถูก จำกัด ในหลาย ๆ สถานการณ์ พวกเขาเพียง แต่สร้างวัตถุเดียว
บางครั้งเราต้องการที่จะมี "ชนิดของวัตถุ" ที่สามารถนำมาใช้ในการสร้างวัตถุหลายประเภทหนึ่ง
วิธีมาตรฐานในการสร้าง "ชนิดของวัตถุ" คือการใช้ฟังก์ชั่นวัตถุที่สร้าง:
ตัวอย่าง
function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var
myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
ลองตัวเอง» ฟังก์ชั่นดังกล่าวข้างต้น (คน) เป็นตัวสร้างวัตถุ
เมื่อคุณมีตัวสร้างวัตถุคุณสามารถสร้างวัตถุใหม่ประเภทเดียวกัน:
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
this คำหลัก
ใน JavaScript สิ่งที่เรียกว่า this เป็นวัตถุที่ว่า "เป็นเจ้าของ" รหัส JavaScript
ค่าของ this เมื่อใช้ในฟังก์ชั่นเป็นวัตถุที่ว่า "เป็นเจ้าของ" ฟังก์ชั่น
ค่าของ this เมื่อใช้ในวัตถุที่เป็นวัตถุเอง
this คำหลักในตัวสร้างวัตถุไม่ได้มีค่า มันเป็นเพียงทดแทนสำหรับวัตถุใหม่
ค่าของ this จะกลายเป็นวัตถุใหม่เมื่อสร้างจะใช้ในการสร้างวัตถุ
โปรดทราบว่านี้ไม่ได้เป็นตัวแปร มันเป็นคำหลักที่ คุณไม่สามารถเปลี่ยนค่าของ this
Built-in ก่อสร้าง JavaScript
JavaScript มี built-in ก่อสร้างสำหรับวัตถุพื้นเมือง:
ตัวอย่าง
var x1 = new Object(); // A new Object object
var x2 = new String(); // A new String object
var x3 = new Number(); // A new Number object
var x4 = new Boolean() // A new Boolean object
var x5 = new Array(); // A new Array object
var x6 = new RegExp(); // A new RegExp object
var x7 = new Function(); // A new Function object
var x8 = new Date(); // A new Date object
ลองตัวเอง» Math() วัตถุไม่ได้อยู่ในรายการ คณิตศาสตร์เป็นวัตถุทั่วโลก คำหลักใหม่ที่ยังไม่สามารถนำมาใช้ในทางคณิตศาสตร์
เธอรู้รึเปล่า?
ที่คุณสามารถดู, JavaScript มีรุ่นวัตถุของดั้งเดิม string ชนิดของข้อมูลตัวเลขและบูลีน
ไม่มีเหตุผลที่จะสร้างวัตถุที่ซับซ้อนไม่เป็น ค่าดั้งเดิมดำเนินการได้เร็วขึ้นมาก
และมีเหตุผลที่จะใช้ใหม่ Array() ใช้ตัวอักษรอาร์เรย์แทน: []
และมีเหตุผลที่จะใช้ใหม่ไม่มี RegExp() ใช้ตัวอักษรรูปแบบแทน: /()/
และมีเหตุผลที่จะใช้ใหม่ไม่มี Function() ฟังก์ชั่นใช้การแสดงออกแทน: function () {}
และมีเหตุผลที่จะไม่ใช้ new Object() ใช้ตัวอักษรวัตถุแทน: {}
ตัวอย่าง
var x1 = {}; // new object
var x2 = ""; // new primitive string
var x3 = 0; // new primitive number
var x4 = false; // new primitive boolean
var x5 = []; // new array object
var x6 = /()/ // new regexp object
var x7 = function(){}; // new function object
ลองตัวเอง» วัตถุ JavaScript ไม่แน่นอน
วัตถุที่ไม่แน่นอน: พวกเขาได้รับการแก้ไขโดยการอ้างอิงโดยไม่คุ้มค่า
ถ้า Y เป็นวัตถุข้อความต่อไปนี้จะไม่สร้างสำเนาของ Y A:
var x = y; // This will not create a copy of y.
วัตถุ X ไม่ได้สำเนาของ Y มันเป็น Y ทั้ง X และ Y จุดไปที่วัตถุเดียวกัน
การเปลี่ยนแปลงใด ๆ Y จะเปลี่ยน X เพราะ x และ y เป็นวัตถุเดียวกัน
ตัวอย่าง
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
var x = person;
x.age = 10; // This will change both x.age and person.age
ลองตัวเอง»