Ringkasan Function.prototype.apply() dan Function.prototype.call()_Pengetahuan asas

WBOY
Lepaskan: 2016-05-16 15:03:31
asal
1644 orang telah melayarinya

Saya selalu melupakan penggunaan dua perkara ini dan menuliskannya untuk rekod.
Fungsi mereka adalah sama, tetapi parameter yang dihantar adalah berbeza

mohon

terapkan menerima dua parameter Yang pertama menentukan penuding kepada objek ini dalam badan fungsi Parameter kedua ialah koleksi berlangganan (objek boleh dilalui Kaedah penggunaan menghantar elemen dalam koleksi ini sebagai parameter kepada objek. Fungsi dipanggil:

var func = function(a, c, c){
  alert([a,b,c]); //[1,2,3]
}
func.apply(null, [1,2,3]);

Salin selepas log masuk

panggil

Parameter yang diluluskan dalam panggilan tidak tetap Sama seperti yang digunakan, parameter pertama juga mewakili penunjuk ini dalam badan fungsi Bermula dari parameter kedua, setiap parameter dihantar ke dalam fungsi secara bergilir-gilir:

var func = function(a, b, c){
  alert([a,b,c]); //[1,2,3]
}
func.call(null, 1,2,3);
Salin selepas log masuk

panggilan ialah gula sintaksis untuk aply. Jika parameter pertama adalah nol, ini dalam badan fungsi menghala ke objek hos, iaitu tetingkap dalam penyemak imbas.

Tujuan memanggil dan memohon

1. Tukar ini untuk menunjuk kepada

Itu contoh di atas

2.Fungsi.prototaip.ikat

Fungsi Mock.prototype.bind

Function.prototype.bind = function(context){
  var self = this;
  return function(){
    return self.apply(context, arguments);
  }
};

var obj = {
  name: 'cxs'
};

var func = function(){
  alert(this.name); //cxs
}.bind(obj);

fun();
Salin selepas log masuk

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!