JavaScript の複雑さの奥には、当惑させる可能性があることで最もよく知られている神秘的な構成要素、「new」が横たわっています。オペレーター。その曖昧な仕組みはプロトタイプチェーンと並んでおり、多くの人がコードの迷路で迷っています。
新しいオペレーターのメカニズムを掘り下げる
「新しい」の秘密を明らかにすること" 演算子、その複雑な操作を詳しく見てみましょう:
代替レンズ
謎に満ちた「新しい」をさらに解明するためにオペレーターの場合、そのアクションを反映する代替実装を検討してみましょう:
<code class="javascript">function NEW(f) { var obj, ret, proto; // Prototype verification proto = Object(f.prototype) === f.prototype ? f.prototype : Object.prototype; // Object inheritance from `proto` obj = Object.create(proto); // Function invocation with object as "this" ret = f.apply(obj, Array.prototype.slice.call(arguments, 1)); // Object return if (Object(ret) === ret) { return ret; } return obj; } // Demonstration: function Foo(arg) { this.prop = arg; } Foo.prototype.inherited = 'baz'; var obj = NEW(Foo, 'bar'); console.log(obj.prop); // 'bar' console.log(obj.inherited); // 'baz' console.log(obj instanceof Foo); // true</code>
このコードはビーコンとして機能し、「新しい」オペレーターが舞台裏でどのように熱心に職務を実行しているかを示します。
以上がJavaScript の「new」演算子はどのように魔法を発揮するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。