JavaScript プロトタイプの定義: 2 つの構文とその影響の調査
JavaScript では、プロトタイプを定義すると、オブジェクトに動作を追加する便利な方法が提供されます。プロトタイプ定義には 2 つの共通の構文があり、機能的に異なる場合があります。
オプション 1: 既存のプロトタイプの拡張
Person.prototype.sayName = function(name) { alert(name); }
この構文は、既存のプロトタイプ オブジェクトを拡張します。新しいプロパティ (sayName) とそれに割り当てられた関数を使用します。この定義より前にインスタンス化されたオブジェクトは、新しいメソッドを継承できます。
オプション 2: プロトタイプを上書きする
Person.prototype = { sayName: function(name) { alert(name); } }
ここでは、プロトタイプ オブジェクト全体が新しいものに置き換えられます。 、sayName メソッドのみが含まれています。これにより、暗黙的にバインドされたコンストラクター プロパティを含む、既存のプロトタイプ プロパティがすべて上書きされます。
機能の違い
利点と欠点
の代替構文拡張:
上書きせずによりクリーンなオブジェクト リテラル構文を得るには、Object.assign:
Object.assign(Person.prototype, { sayName: function(name) { alert(name); } });
以上がJavaScript プロトタイプの拡張と上書きの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。