new 運算子在 JavaScript 中是如何運作的?
new 運算子在 JavaScript 的物件導向程式設計系統中扮演著舉足輕重的角色。了解其功能對於有效地建立和管理物件至關重要。
深入研究新運算符的實作
<code class="javascript">new dataObj(args);</code>
此程式碼片段利用內部[[ Construct]]方法來執行一系列特定操作:
清晰度的替代實現
為了增強理解,這裡有一個替代表示new 運算子實現的功能:
<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>
在此範例中:
以上是JavaScript 中的 new 運算子如何運作,以及它如何使用原型鏈建立物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!