วัตถุการเปิดใช้งานใน JavaScript คืออะไร?


13

ในบริบทการดำเนินการที่กำหนดวัตถุตัวแปรเป็นวัตถุการเปิดใช้งานของบริบทการดำเนินการนั้น

จากการวิจัยออนไลน์ของฉันฉันสามารถค้นหาประโยคก่อนหน้านี้ที่ใช้ถ้อยคำใหม่ในวิธีที่ต่างกัน แต่ไม่มีใครสามารถบอกได้ว่ามันคืออะไร

วัตถุการเปิดใช้งานคืออะไร


วัตถุเปิดใช้งานเป็นวัตถุบนสุดในขอบเขตโซ่กับพร่องเป็นวัตถุทั่วโลก ดูคำตอบนี้สำหรับรายละเอียดเพิ่มเติม
ikaruss

คำตอบ:


17

ผมขอเริ่มจากราก ...

บริบทการดำเนินการเป็นวัตถุซึ่งประกอบด้วย:

  • วัตถุตัวแปรซึ่งเป็นวัตถุการเปิดใช้งานในกรณีของฟังก์ชั่น
  • ขอบเขตห่วงโซ่ซึ่งคุณคิดว่าเป็นรายการที่เชื่อมโยงของขอบเขตด้านนอก
  • this ราคา

วัตถุที่เปลี่ยนแปลงได้คือสิ่งที่เป็นนามธรรมซึ่งอาจเป็นหนึ่งในนั้น:

  • วัตถุทั่วโลก (ในบริบทของโลก) - สถานที่ที่ vars ทั่วโลก (เช่นwindow, documentหรือconsoleในเบราว์เซอร์) ที่อาศัยอยู่
  • วัตถุการเปิดใช้งาน (สำหรับฟังก์ชั่นที่กำหนดขอบเขตใน ECMAScript)

การเปิดใช้งานวัตถุเป็นวัตถุที่เก็บ:

  • args อย่างเป็นทางการของฟังก์ชั่น
  • arguments วัตถุสำหรับฟังก์ชั่นนี้
  • vars ใด ๆ และ (ชื่อ) ฟังก์ชั่นภายในฟังก์ชั่นนี้

ดังนั้นการเปิดใช้งานวัตถุเป็นเพียงกรณีพิเศษของวัตถุตัวแปร

thisมันเป็นพื้นภาชนะสำหรับทุกสิ่งในท้องถิ่นที่คุณสามารถเข้าถึงโดยใช้ชื่อภายในฟังก์ชั่นยกเว้น ฉันอาจจะไม่แน่ชัดที่นี่ แต่นั่นคือสิ่งที่ฉันคิดว่ามันเป็น

คำอธิบายเพิ่มเติมพร้อมรูปภาพสวย ๆ :


2

วัตถุการเปิดใช้งานเป็นวัตถุที่ใช้ในการเก็บคุณสมบัติที่อธิบายถึงสภาพแวดล้อมและขอบเขตของฟังก์ชั่นการดำเนินการ มันอยู่บนวัตถุนี้ที่เก็บอาร์กิวเมนต์ของฟังก์ชันตัวอย่างเช่น ตามคำนิยามการเปิดใช้งานบางสิ่งบางอย่างคือการทำให้สิ่งนั้นทำหน้าที่หรือทำหน้าที่ ดังนั้นเมื่อคุณได้ยิน 'วัตถุการเปิดใช้งาน' ให้คิดว่าวัตถุ 'ฟังก์ชั่น' หรือดีกว่านั้นคือรูทวัตถุที่อยู่ในท้องถิ่นของฟังก์ชั่น (เช่นฟังก์ชันวัตถุในท้องถิ่น)

ในส่วนที่เกี่ยวกับวัตถุตัวแปรวัตถุการเปิดใช้งานนั้นมีอินสแตนซ์ที่เป็นรูปธรรมมากขึ้นของวัตถุตัวแปรซึ่งเป็นตัวมันเอง (อ้างอิงถึงตัวแปรที่นี่ ตามที่ระบุไว้ที่นี่ ...

คำว่า 'ตัวแปรวัตถุ' เป็นคำทั่วไปหรือนามธรรมที่ใช้ในการอ้างถึงวัตถุใด ๆ ที่มีคุณสมบัติที่อธิบายถึงสภาพแวดล้อมและขอบเขตของบริบทการดำเนินการในปัจจุบัน

ดังนั้นภายในสภาพแวดล้อมและขอบเขตของบริบทการดำเนินการทั่วโลก (เช่นเมื่ออยู่นอกฟังก์ชั่น) วัตถุทั่วโลกเป็นวัตถุตัวแปร ในเบราว์เซอร์เนื่องจากสภาพแวดล้อมการดำเนินการทั่วโลกหรือภายนอกเป็นเบราว์เซอร์ WINDOW มันเป็นwindowวัตถุที่สิ้นสุดการใช้เป็นวัตถุตัวแปร นี่คือเหตุผลที่ตัวแปรประกาศด้วยvarคำสำคัญนอกฟังก์ชั่นท้ายwindowวัตถุ

ในขอบเขตของฟังก์ชั่นมันเป็นวัตถุการเปิดใช้งาน (เช่นฟังก์ชั่นวัตถุในท้องถิ่น) ที่เป็นวัตถุตัวแปรเพราะมันเป็นวัตถุที่ใช้ในการจัดเก็บคุณสมบัติที่อธิบายถึงขอบเขตของฟังก์ชั่นการดำเนินการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.