Tulis fungsi dalam prototipe [duplikat]

Ini adalah pertanyaan konseptual yang saya tidak mampu pecahkan.

Seluruh pertanyaan dapat diringkas menjadi baris ini:

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

Bisakah kita memanggil a() di dalam b(), keduanya ada di prototipe?


Sunting: Hanya untuk orang lain, saya menelepon this.a() dengan nama yang salah, namun menggunakan b: function(){ this.a(); } seharusnya berfungsi dengan baik.


person Community    schedule 22.08.2020    source sumber
comment
Saya rasa Anda tidak harus melampirkannya ke prototipe..   -  person Eugen Sunic    schedule 23.08.2020
comment
Maksud Anda karena konstruktornya? Ya, tapi itu topik lain. Saya hanya mencoba membuat semuanya menjadi singkat.   -  person    schedule 23.08.2020
comment
@TiiJ7 Saya yakin jawabannya salah, saya sudah mencobanya   -  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
Untuk menjawab pertanyaan Anda: Dalam kasus saat ini. Ini akan menghasilkan kesalahan. Karena a() tidak berada dalam cakupan b. Untuk menjalankan a. Anda harus menyebutnya dengan kata kunci ini.   -  person Muhammad Kamran    schedule 23.08.2020
comment
@misternobody itu tidak salah, periksa komentar saya di atas, pertanyaan Anda adalah duplikat   -  person Eugen Sunic    schedule 23.08.2020
comment
@MuhammadKamran Ya, seharusnya saya sertakan, soalnya saya sudah mencobanya, jadi saya cukup terkejut. Saya akan menguji lagi.   -  person    schedule 23.08.2020
comment
@EugenSunic sobat pelan-pelan, saya sudah mencobanya, dan itu sederhana. Entah kenapa tidak berhasil, jadi saya periksa di mana perbedaannya.   -  person    schedule 23.08.2020
comment
Saya mencoba yang berikut ini dan berhasil: OurConstructor.prototype = { a: function( ){ console.log('asdf') }, b:function( ){ this.a()} } OurConstructor.prototype.b();   -  person Muhammad Kamran    schedule 23.08.2020
comment
@MuhammadKamran Saya mengakses nilai lain dari prototipe pada fungsi tersebut. Saya tahu ini berfungsi dalam contoh ini, saya mencoba membuatnya tetap sederhana dan itulah mengapa ada kesalahpahaman.   -  person    schedule 23.08.2020
comment
Tidak yakin mengapa ada orang yang memilih untuk membuka kembali ini...ini adalah duplikat lengkap yang dijawab sepenuhnya di pertanyaan lain   -  person charlietfl    schedule 23.08.2020