เขียนฟังก์ชันในต้นแบบ [ซ้ำกัน]

นี่เป็นคำถามเชิงแนวคิดที่ฉันไม่ชำนาญในการแก้ปัญหา

คำถามทั้งหมดสามารถลดลงเหลือบรรทัดนี้:

OurConstructor.prototype = {
   a: function(){},
   b: function(){ a(); }
};

เราสามารถเรียก a() ภายใน b() ทั้งคู่อยู่บนต้นแบบได้หรือไม่


แก้ไข: สำหรับคนอื่นๆ ฉันโทรหา this.a() ด้วยชื่อผิด แต่การใช้ b: function(){ this.a(); } น่าจะได้ผลดี


person Community    schedule 22.08.2020    source แหล่งที่มา
comment
ฉันไม่คิดว่าคุณควรแนบสิ่งนั้นกับต้นแบบ ..   -  person Eugen Sunic    schedule 23.08.2020
comment
คุณหมายถึงเพราะตัวสร้างเหรอ? แต่นั่นเป็นอีกหัวข้อหนึ่ง ฉันแค่พยายามทำให้เรื่องสั้นลง   -  person    schedule 23.08.2020
comment
@ TiiJ7 ฉันเชื่อว่าคำตอบนั้นเป็นเท็จ ฉันได้ลองแล้ว   -  person    schedule 23.08.2020
comment
``` var OurConstructor = function(){ } OurConstructor.prototype.a = function() { console.log('func a') } OurConstructor.prototype.b = function() { this.a(); console.log('func b') } const ourConst = new OurConstructor(); ourConst.b() ```   -  person Eugen Sunic    schedule 23.08.2020
comment
เพื่อตอบคำถามของคุณ: ในกรณีนี้ปัจจุบัน จะส่งผลให้เกิดข้อผิดพลาด เพราะ a() ไม่อยู่ในขอบเขตของ b เพื่อที่จะรันก. คุณจะต้องเรียกมันด้วยคำสำคัญนี้   -  person Muhammad Kamran    schedule 23.08.2020
comment
@misternobody ไม่ผิด ตรวจสอบความคิดเห็นของฉันด้านบน คำถามของคุณซ้ำกัน   -  person Eugen Sunic    schedule 23.08.2020
comment
@MuhammadKamran ใช่ ฉันควรจะรวมไว้ด้วย ปัญหาคือฉันได้ลองแล้ว ดังนั้นฉันจึงค่อนข้างประหลาดใจ ฉันจะทดสอบอีกครั้ง   -  person    schedule 23.08.2020
comment
@EugenSunic เพื่อนช้าลงหน่อย ฉันได้ลองแล้ว และมันก็ง่ายมาก มันใช้งานไม่ได้ด้วยเหตุผลบางอย่าง ดังนั้นฉันจึงตรวจสอบว่าส่วนต่างอยู่ที่ไหน   -  person    schedule 23.08.2020
comment
ฉันลองวิธีต่อไปนี้แล้วได้ผล: OurConstructor.prototype = { a: function( ){ console.log('asdf') }, b:function( ){ this.a()} } OurConstructor.prototype.b();   -  person Muhammad Kamran    schedule 23.08.2020
comment
@MuhammadKamran ฉันกำลังเข้าถึงค่าอื่น ๆ จากต้นแบบของฟังก์ชันเหล่านั้น ฉันรู้ว่ามันได้ผลในตัวอย่างนี้ ฉันพยายามทำให้มันเรียบง่ายและนั่นเป็นสาเหตุที่เกิดการเข้าใจผิด   -  person    schedule 23.08.2020
comment
ไม่แน่ใจว่าทำไมใครก็ตามโหวตให้เปิดสิ่งนี้อีกครั้ง ... มันเป็นคำตอบที่ซ้ำกันทั้งหมดในคำถามอื่น   -  person charlietfl    schedule 23.08.2020