Memahami "new.target" dalam ECMAScript 2015
Dalam spesifikasi ECMAScript 2015, kata kunci "new.target" diperkenalkan dan secara ringkas disebut tiga kali. Walaupun MDN menyediakan beberapa konteks, ia kekal agak kabur.
Apakah itu "new.target"?
"new.target" ialah sifat meta, juga dikenali sebagai Sasaran Baru. Ia mendapatkan nilai semasa slot dalaman [[NewTarget]] bagi persekitaran fungsi bukan anak panah. Nilai ini ditetapkan apabila fungsi digunakan dengan kata kunci "baharu".
Tujuan "new.target"
Tujuan utamanya ialah untuk menentukan sama ada fungsi dipanggil sebagai pembina atau tidak. Selain itu, ia memainkan peranan penting dalam pelaksanaan kelas ES6.
Cara Kelas ES6 Menggunakan "new.target"
Apabila pembina kelas ES6 dipanggil melalui " X baharu", nilai "ini" tidak dimulakan. Objek belum dicipta. Walau bagaimanapun, tika itu harus diwarisi daripada .prototaip pembina yang asalnya dipanggil.
"new.target" menjejaki pembina "paling luar" yang menerima panggilan "baharu" semasa seruan super(). Prosedur OrdinaryCreateFromConstructor menggunakan "new.target" dan bukannya pembina yang sedang dilaksanakan untuk memastikan pewarisan yang betul.
Contoh:
<code class="javascript">class Parent { constructor() { console.log(new.target); // Child! } } class Child extends Parent { constructor() { super(); console.log(this); } } new Child;</code>
Dalam contoh ini, "new .target" akan mengeluarkan "Child" dalam pembina Induk, menunjukkan bahawa ia dipanggil dengan kata kunci "baharu".
Atas ialah kandungan terperinci Apakah \'new.target\' dan Bagaimana Ia Berfungsi dalam Kelas ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!