javascript - soalan panggilan
PHP中文网
PHP中文网 2017-05-19 10:44:24
0
2
725

Dalam "The Definitive Guide to JavaScript" terdapat fungsi yang digunakan untuk melaksanakan Array.prototype.map:

var map = function(a,f){
    var results = [];
    for(var i = 0,l = a.length; i<l; i++){
        if(i in a){
            results[i] = f.call(null,a[i],i,a);//这里
        }
    }
    return results;
};

Kenapa guna call(null)而不是直接使用f(a[i], i, a)? Dengan cara ini, ini semua menunjukkan keadaan keseluruhan

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(2)
洪涛

Anda boleh melihat bahawa peta yang dilaksanakan di sini adalah dalam bentuk ini, iaitu peta(array, f), yang hanya boleh dipanggil dengan dua parameter
Mari kita lihat semula prototaip fungsi yang diberikan pada MDN,

.

const new_array = arr.map(panggilan balik[, thisArg])

panggilan balik ialah apa yang kita panggil f, jadi yang terakhir ini adalah pilihan, dan fungsi yang disediakan dalam buku tidak mengambil kira nilai ini sama sekali, maka apabila nilai ini tidak diluluskan, Jika parameter Arg ini ditinggalkan, atau nilainya ditetapkan Jika ia adalah batal atau tidak ditentukan, ini menunjukkan kepada objek global.
Selain itu, kita tahu bahawa apabila menggunakan kaedah panggilan objek fungsi,

Jika fungsi ini dalam mod tidak ketat, nilai ini yang dinyatakan sebagai null dan undefined akan secara automatik menghala ke objek global (objek tetingkap dalam penyemak imbas), dan nilai ini akan menjadi nilai asal (nombor, rentetan, Nilai Boolean) Objek pembalut automatik yang akan menunjuk kepada nilai asal.

Ringkasnya, dalam satu ayat, untuk mensimulasikan sepenuhnya sifat fungsi peta~

滿天的星座

/q/10...

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan