Rumah > Soal Jawab > teks badan
var leadingThirtysevenList = list.bind(undefined, 37);
Ini ialah coretan kod yang saya lihat dalam manual tentang perkara yang dilakukan oleh fungsi bind() apabila ia melepasi parameter kedua, di mana ia melepasi undefined sebagai parameter. Saya juga telah melihat amalan menghantar parameter yang tidak ditentukan dalam beberapa rangka kerja, tetapi saya tidak dapat mencari jawapan yang lebih lengkap dan jelas melalui carian dalam talian. Saya ingin meminta guru memberikan jawapan terperinci.
仅有的幸福2017-05-19 10:46:01
Kod yang anda berikan, mengapa undefined dihantar, mungkin tiada kaitan dengan penjelasan saya di bawah.
Saya terutamanya akan bercakap tentang beberapa rangka kerja lain sebagai contoh, jquery akan lulus dalam undefined sebagai parameter dan menetapkan nilai nol.
Itu kerana pepijat dalam js, iaitu, undefined boleh ditulis semula! ! , ya, anda mendengarnya dengan betul.
Mengenai mengapa ia berbahaya untuk undefined ditulis semula, lihat kod berikut:
(function (undefined) {
let a;
// 如果a没有值则为a赋值. 但因为undefined被重写了,所以这句根本执行不到。
if (a === undefined) {
a = 'b';
}
})(true);
高洛峰2017-05-19 10:46:01
Kemudian pada pendapat anda, apakah yang perlu dilakukan jika anda ingin melepasi parameter kedua dan menggunakan nilai lalai untuk parameter pertama atau tidak mengapa?
Kod ini hanya untuk melaksanakan fungsi panggilan kari
怪我咯2017-05-19 10:46:01
ECMAScript5.1 15.3.4.4 menerangkan bahawa apabila parameter pertama diluluskan adalah batal atau tidak ditentukan, konteks fungsi akan menghala ke tetingkap (global dalam nod)
習慣沉默2017-05-19 10:46:01
Yang pertama digunakan sebagai ruang letak, tetapi menggunakan null akan memberi kesan yang lebih baik daripada undefined. Secara amnya, saya terbiasa menggunakan null untuk menduduki jawatan.