ใช้ฟังก์ชัน jQuery คืออะไร


90

ฉันเห็นว่าในปลั๊กอินและโค้ดต่างกัน แต่ฉันไม่เข้าใจว่ามันทำหน้าที่อะไร ... ใน jQuery api ไม่ได้อ้างอิง!


21
ไม่ได้อยู่ในการอ้างอิง jQuery เนื่องจากเป็น [ ฟังก์ชัน JavaScript ดั้งเดิม ] ( developer.mozilla.org/en/JavaScript/Reference/Global_Objects/… )
Peter Ajtai

คำตอบ:


126

applyเรียกใช้ฟังก์ชันด้วยชุดอาร์กิวเมนต์ ไม่ใช่ส่วนหนึ่งของ jQuery แต่เป็นส่วนหนึ่งของ Javascript หลัก อย่างไรก็ตามมีการกล่าวถึงในเอกสาร jQuery:

http://docs.jquery.com/Types#Context.2C_Call_and_Apply

ไวยากรณ์:

somefunction.apply(thisObj, [argsArray])

ข้างต้นเรียกฟังก์ชันsomefunctionตั้งค่าthisให้thisObjอยู่ในขอบเขตของฟังก์ชันและส่งผ่านอาร์กิวเมนต์จากargsArrayเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน


2
ที่เกี่ยวข้องคือฟังก์ชัน [ .call () ] ( mdn.beonex.com/en/Core_JavaScript_1.5_Reference/Global_Objects/… ) ที่ใช้ a thisด้วย แต่ตามด้วยชุดของอาร์กิวเมนต์ที่แสดงรายการทีละรายการแทนที่จะเป็นอาร์เรย์ที่มีอาร์กิวเมนต์ .
Peter Ajtai

ข้างล่างจะทำอะไรได้มากกว่า? $ .when.apply (null, object) .done (โทรกลับ);
Gohel Kiran

@ user1531437 ที่เรียกร้อง$.when(object).done(callback);แต่ในการทำงาน$.when, มีการตั้งค่าพารามิเตอร์แรกคือthis nullอาจจะต้องใช้$.when.call(null, object).done(callback);เพราะพารามิเตอร์ที่สองของ.applyควรจะเป็นอาร์เรย์
Luke Madhanga

ที่เกี่ยวข้องกันทางไกลคือฟังก์ชันพร็อกซี jQueryซึ่งมีประโยชน์ในการเปลี่ยนค่าของthisเช่นตัวแปรบริบทวิธีที่พื้นเมืองของ Javascript applyสามารถทำได้
The Red Pea

5

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


สำหรับทุกคนที่ทำงานกับ jQuery และมาถึงคำตอบนี้คุณจะต้องใช้$(this)เพื่อรับวัตถุ jQuery ที่เกี่ยวข้องและสามารถเข้าถึงวิธีการ jQuery ได้
R.Schreurs

@ R.Schreurs คุณต้องใช้วัตถุ jQuery.fn ตามที่เห็นที่นี่: stackoverflow.com/a/27374435/674033
AVProgrammer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.