Bagaimanakah pengendali baharu berfungsi dalam JavaScript?
Pengendali baharu memainkan peranan penting dalam sistem pengaturcaraan berorientasikan objek JavaScript. Adalah penting untuk memahami fungsinya untuk mencipta dan mengurus objek dengan berkesan.
Menyelami Pelaksanaan Operator baharu
<code class="javascript">new dataObj(args);</code>
Coretan kod ini menggunakan [[ Bina]] kaedah untuk menjalankan satu siri tindakan khusus:
Pelaksanaan Alternatif untuk Kejelasan
Untuk meningkatkan pemahaman, berikut ialah perwakilan alternatif bagi perkara yang dicapai oleh pengendali baharu:
<code class="javascript">function NEW(f) { var obj, ret, proto; // Check if `f.prototype` is an object, not a primitive proto = Object(f.prototype) === f.prototype ? f.prototype : Object.prototype; // Create an object that inherits from `proto` obj = Object.create(proto); // Apply the function setting `obj` as the `this` value ret = f.apply(obj, Array.prototype.slice.call(arguments, 1)); if (Object(ret) === ret) { // the result is an object? return ret; } return obj; } // Example usage: function Foo (arg) { this.prop = arg; } Foo.prototype.inherited = 'baz'; var obj = NEW(Foo, 'bar'); obj.prop; // 'bar' obj.inherited; // 'baz' obj instanceof Foo // true</code>
Dalam contoh ini:
Atas ialah kandungan terperinci Bagaimanakah pengendali `baru` berfungsi dalam JavaScript dan bagaimana ia mencipta objek dengan rantai prototaipnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!