เห็นได้ชัดว่านี่เป็นหัวข้อที่ไม่เกี่ยวข้องกับ IE (ยกเว้นขั้นสูงเช่น) อย่างไรก็ตามเรื่องนี้นักเรียนที่สนใจควรเรียนรู้เกี่ยวกับการใช้งานของผู้ตั้งค่าและผู้ตั้งค่าในมาตรฐาน ECMAScript5 ในวัตถุการดำเนินการที่ใช้กันมากที่สุดของคุณสมบัติหรือวิธีการอ่าน (อ้างอิง) และการเขียน ตัวอย่างเช่น O.Get ซึ่งเป็นการดำเนินการอ่านและ O.Set = 1 คือการดำเนินการเขียน ในความเป็นจริงในการใช้เบราว์เซอร์กระแสหลักล่าสุดยกเว้น IE ค่าคีย์ของวัตถุใด ๆ สามารถแทนที่ด้วยวิธี getter และ setter ซึ่งเรียกว่า "accessor attribute"
ไม่ต้องสงสัยเลยว่า Getter รับผิดชอบการสอบถามค่ามันไม่ได้ใช้พารามิเตอร์ใด ๆ และ Setter รับผิดชอบการตั้งค่าคีย์ ค่าจะถูกส่งผ่านในรูปแบบของพารามิเตอร์ ในการทำงานของมันผลตอบแทนทั้งหมดไม่ถูกต้อง ซึ่งแตกต่างจากคุณสมบัติทั่วไปเมื่อมีการประกาศเฉพาะหรือตั้งค่าคุณสมบัติหน่วยความจำไม่สามารถอ่านและเขียนได้ เมื่อมันมีวิธี getter เท่านั้นมันจะถูกอ่านเท่านั้น ในทำนองเดียวกันเมื่อมีวิธีการตั้งค่าเท่านั้นสิ่งที่คุณอ่านจะไม่ได้กำหนดไว้เสมอ จะประกาศแอตทริบิวต์หน่วยความจำวัตถุได้อย่างไร? วิธีที่เร็วที่สุดคือการใช้ไวยากรณ์ของตัวอักษรวัตถุเพื่อเขียน โปรดดูรหัสต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
var oo = {
ชื่อ: 'Xianxin'
รับเซ็กส์ () {
กลับ 'ชาย';
-
-
// เห็นได้ชัดว่าสิ่งนี้ไม่ได้รับอนุญาตเพราะเซียงซินไม่ต้องการให้โลกภายนอกเปลี่ยนความจริงที่ว่าเขาเป็นผู้ชายดังนั้นจึงมีเพียงฟังก์ชั่นอ่านอย่างเดียวเท่านั้นที่ถูกกำหนดไว้สำหรับเพศ
oo.sex = 'ผู้หญิง';
console.log (oo.sex); // ผลลัพธ์ยังคงเป็นผู้ชาย
ที่น่าสนใจคือสิ่งนี้ทำให้ความเข้าใจก่อนหน้าของเราคือคำหลักของฟังก์ชั่นไม่ได้ใช้เมื่อกำหนดวิธีการ ในความเป็นจริงรับหรือตั้งค่าที่นี่คุณสามารถเข้าใจว่ามันเป็นฟังก์ชั่นในสองรัฐที่แตกต่างกัน: ด้านที่ครอบคลุม (เขียน), ด้านที่ปลอดภัย (อ่าน) เมื่อทั้งหมดถูกแยกออกเป็นรูปแบบที่แตกต่างกันหมายความว่าเราอาจไม่จำเป็นต้องปฏิบัติตามประเพณีในแง่ของการแสดงออกอีกต่อไป จากนั้นดำเนินการต่อด้วยตัวอย่างด้านบน คุณจะกลายเป็นทั้งการอ่านและเขียนตามคุณสมบัติของหน่วยความจำได้อย่างไร? บางทีย่อหน้าต่อไปนี้จะให้คำตอบ:
การคัดลอกรหัสมีดังนี้:
var oo = {
ชื่อ: 'Xianxin'
รับเซ็กส์ () {
if (this.sexx) {
คืนสิ่งนี้เซ็กซ์;
}อื่น{
กลับ 'ชาย';
-
}, ตั้งค่าเพศ (val) {
this.sexx = val;
-
-
// โอ้เขาอดทนมากที่แม้แต่คนก็เปลี่ยนเพศของเขาเขาก็ยอมรับมัน
oo.sex = 'ผู้หญิง';
console.log (oo.sex); // ผลลัพธ์ผู้หญิง
บางทีคุณอาจคิดว่าสิ่งนี้ไม่จำเป็นเพราะเราสามารถเพิกเฉยต่อการได้รับและตั้งค่าและอนุญาตให้วิธีการทางเพศโดยตรงมีสองสิทธิ์ แต่เหตุผลที่เราเอาออกและตั้งแยกต่างหากคือการเข้าใจการทำงานของคีย์-ค่าของ ECMAScript5 อย่างชัดเจนยิ่งขึ้นในวัตถุ JavaScript ซึ่งเป็นการตีความที่เข้มงวดยิ่งขึ้น แน่นอนว่าในประเทศจีนปนเปื้อนโดย IE เทคโนโลยีกระแสหลักใหม่ดูเหมือนจะไม่อยู่ในสถานที่เสมอ ในการพัฒนาโครงการจริงคุณอาจไม่เคยใช้ Get and Set แต่ใครสามารถรับประกันได้ว่าคุณจะไม่ทำในอนาคต ...