ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「new」演算子はどのようにオブジェクトを作成し、その継承を確立しますか?
JavaScript の新しい Operator の内部動作を解明する
プロトタイプ チェーンに似た JavaScript の誤解された領域が、基本的なクエリを明らかにします: 「new」演算子は、オブジェクトの作成をどのように調整し、その系統とコア属性を定義しますか?
new の本質
この謎を解明するには、別の図を検討してください。 :
function NEW(f) { var obj, ret, proto; // Examine `f.prototype` proto = Object(f.prototype) === f.prototype ? f.prototype : Object.prototype; // Inherit from `proto` obj = Object.create(proto); // Invoke `f` with `obj` as `this` ret = f.apply(obj, Array.prototype.slice.call(arguments, 1)); // Determine return type if (Object(ret) === ret) { // Object returned? return ret; } // Otherwise, return inherited object return obj; }
メカニズムを理解する
新しい演算子は、次のような内部 [[Construct]] メカニズムに依存します。
実用的なアプリケーション
この概念の威力を説明します:
function Foo(arg) { this.prop = arg; } Foo.prototype.inherited = 'baz'; var obj = NEW(Foo, 'bar');
これは、「inherited」継承プロパティと、値「bar」を持つ「prop」プロパティを持つ、Foo から継承するオブジェクトを作成します。
以上がJavaScript の「new」演算子はどのようにオブジェクトを作成し、その継承を確立しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。