Rumah  >  Artikel  >  hujung hadapan web  >  Senario aplikasi panggilan digunakan dalam kemahiran javascript_javascript

Senario aplikasi panggilan digunakan dalam kemahiran javascript_javascript

WBOY
WBOYasal
2016-05-16 16:03:431061semak imbas

Kami sering melihat sesuatu seperti callback.call(xxx,xxx) dalam sesetengah pemalam jQuery Walaupun saya membaca dalam buku bahawa fungsi panggilan dan guna boleh menukar skop, saya masih tidak dapat memahami sepenuhnya tujuan utama. mengubah skop Apakah masalah yang diselesaikan, adakah terdapat sebarang alternatif, atau apakah masalah yang dimaksudkan untuk diselesaikan oleh kedua-dua fungsi ini, senario aplikasi, dan bilakah masa yang paling sesuai untuk menggunakannya setiap kali saya membaca kod seperti ini? pening dan melompat keluar dari bacaan linear Rasanya agak berbelit

Fungsi panggilan dan terapkan sangat mudah, iaitu mengubah konteks Terlalu banyak senario yang boleh digunakan Walaupun kadangkala ia hanya untuk "kecantikan", berikut adalah yang biasa saya gunakan.

1.

Salin kod Kod adalah seperti berikut:
Object.prototype.toString.call(Obj)

Digunakan untuk menentukan jenis Obj

Walaupun hujah serupa dengan Array, mereka tidak mempunyai kaedah tolak Array. Apa yang perlu saya lakukan?
Array.prototype.push.call(argumen)

3.Javascript tidak mempunyai konsep kaedah persendirian, jadi saya ingin menggunakan penutupan untuk melaksanakannya

(function () {
  var Person = function () {
    this.doSomeThing = function () {
      _privateFunction.call(this);
    }
  }

  var _privateFunction = function () {

  }

  window.Person = Person;

}).call(window);

Begitulah maksudnya Apabila membuat panggilan balik, apabila anda mahu konteks dalam panggilan balik anda menjadi konteks semasa, anda juga boleh menggunakan panggilan atau gunakan.

Pada masa ini, ini dalam panggilan balik anda merujuk kepada konteks semasa. Contohnya, Orang kelas, dan kaedahnya mengatakan mempunyai parameter panggil balik Jika panggilan balik ini dilaksanakan melalui kurungan biasa, maka kaedah orang lain yang dilaksanakan dalam panggilan balik ini perlu dilaksanakan menggunakan person.other, tetapi konteksnya ditukar itu, semuanya selesai dengan ini.lain~ Perbandingan kod adalah seperti berikut:

var Person = function(){

};

Person.prototype.say = function(callback){
  callback();
};

Person.prototype.other = function(){

};

var vincent = new Person();

vincent.say(function(){
  vincent.other();
});

Panggilan terpakai:

var Person = function(){

};

Person.prototype.say = function(callback){
  callback.call(this);
};

Person.prototype.other = function(){

};

var vincent = new Person();

vincent.say(function(){
  this.other();
});

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn