Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Apa kegunaan .bind(this) pada JavaScript

contoh

var setMessage = function(data) {
    var val = data.val();
    this.displayMessage(data.key, val.name, val.text, val.photoUrl, val.imageUrl);
  }.bind(this);

avatar wandifrog
@wandifrog

274 Kontribusi 56 Poin

Diperbarui 8 tahun yang lalu

6 Jawaban:

Jawaban Terpilih

Gini. This dalam javascript ngacu ke function yg pertama. Jika ada function lagi di dalam function yg pertama tsb kita mw ambil this dari function yg pertama, ga dapet, tanpa di bind this terlebih dahulu

var a = function () {
  this.nama = 'dono';

  var x = function () {
    console.log(this.nama);
    // ini hasilnya dono kalo this ga di bind dono nya ga dapet
  }.bind(this);

  x();
}

Ini sudah dipermudah di es6 pake arrow function


var a = function () {
   this.nama = 'dono';

   var x = () => {
      console.log(this.nama);
   };

   x();
};

avatar QaiserLab
@QaiserLab

366 Kontribusi 390 Poin

Dipost 8 tahun yang lalu

Intinya, fungsi ".bind(this)" pada JS berguna agar referensi nilai "this" di dalam suatu fungsi tidak berubah saat dieksekusi.

avatar ma4m
@ma4m

97 Kontribusi 39 Poin

Dipost 8 tahun yang lalu

@Qaiserlab Wah keren2. tapi arrow function gk bisa di uglify pake gulp selalu ada error. bner kah?

avatar wandifrog
@wandifrog

274 Kontribusi 56 Poin

Dipost 8 tahun yang lalu

Kalau sy pake webpack sama babel gan utk nulis es6 mah. Itu juga udah auto konfigurasi bawaan vue-cli gan. Cukup install vue-cli environment dan skeletonnya semua beres. Itu kalau agan pake vuejs. Kalo sekedar nambah2in script di dalam web mah, ngga pake es6 saya gan, ngapain bikin repot compilenya. Pake aja standard es5 yg bind this tadi. Kalo mw bikin aplikasi mobile hybrid baru tuh pake compile2 an sgala, kan sekalian bikin sistemnya spa

avatar QaiserLab
@QaiserLab

366 Kontribusi 390 Poin

Dipost 8 tahun yang lalu

Paham2. Tapi ane sendiri agak ragu buat belajar semacam babel, typescript, dan yang serupanya karena javascript sendiri masih belum paham secara keseluruhan. Apakah bijak kalo belajar babel dll tetapi js nativenya masih kurang ?

avatar wandifrog
@wandifrog

274 Kontribusi 56 Poin

Dipost 8 tahun yang lalu

Kalau sy pribadi. Belajarnya ga perlu berurutan gan. Sy belajar apa yg sy lagi patience ke situ. Soalnya dgn keadaan gitu sy betah belajarnya. Ibarat kalo buka buku ga perlu urutan bab nya. Sy langsung baca bagian akhir atau tengah. Ga masalah buat sy. Ujung2nya sy nyambung juga. Tapi sy tipikal org yg senang belajar dasarnya sih gan. Sy gatau kalo orang lain bisa dgn cara sperti sy pa ga

Sy udah bisa jquery duluan ketimbang nguasain dasar2 native javascript. Tapi ujungnya sy pelajari juga nativenya

avatar QaiserLab
@QaiserLab

366 Kontribusi 390 Poin

Dipost 8 tahun yang lalu

Login untuk ikut Jawaban