Kandungan berikut adalah semua tentang ini dalam nodejs dan bukannya ini dalam javascript Ini dalam nodejs berbeza daripada ini dalam javascript dalam penyemak imbas.
ini
dalam globalconsole.log(this); {} this.num = 10; console.log(this.num); 10 console.log(global.num); undefined
Ini di dunia global ialah objek kosong secara lalai. Dan dalam global ini tidak mempunyai hubungan dengan objek global, jadi siapa sebenarnya yang melakukan ini dalam titik global? Kami akan menerangkan perkara ini pada separuh kedua bab ini.
ini
dalam fungsifunction fn(){ this.num = 10; } fn(); console.log(this); {} console.log(this.num); undefined console.log(global.num); 10
Ini dalam fungsi menunjuk ke objek global, yang bukan objek yang sama seperti ini dalam global Secara ringkasnya, pembolehubah yang anda tentukan melalui ini dalam fungsi adalah bersamaan dengan menambah atribut kepada global. ia adalah sama seperti global. "ini" dalam "tidak ada kaitan dengannya".
Jika anda tidak percaya, lihat kod di bawah untuk membuktikannya.
function fn(){ function fn2(){ this.age = 18; } fn2(); console.log(this); global console.log(this.age); 18 console.log(global.age); 18 } fn();
Betul, dalam fungsi ini menunjuk ke global.
ini
dalam pembinafunction Fn(){ this.num = 998; } var fn = new Fn(); console.log(fn.num); 998 console.log(global.num); undefined
Dalam pembina, ini menunjukkan contohnya, bukan global.
Kita kini boleh bercakap tentang perkara ini dalam konteks global, ia sebenarnya ada kaitan dengan skop dalam Nodejs. Jika anda ingin mengetahui lebih lanjut tentang skop dalam Nodejs, anda boleh membacanya perbincangan tentang skop dalam isu Skop. artikel ini.
Kembali kepada topik, ini dalam konteks global menunjuk kepada module.exports.
this.num = 10; console.log(module.exports); {num:10} console.log(module.exports.num);
Mengapa ini merujuk kepada module.exports dalam pandangan global Kemudian anda perlu mengetahui lebih lanjut tentang module.exports dahulu nanti