ホームページ > 記事 > ウェブフロントエンド > 新しい演算子は js でどのように機能しますか?
js の new 演算子の動作原理は何ですか。具体的なコード例が必要です。
js の new 演算子は、オブジェクトの作成に使用されるキーワードです。その機能は、指定されたコンストラクターに基づいて新しいインスタンス オブジェクトを作成し、そのオブジェクトへの参照を返すことです。 new 演算子を使用する場合、実際には次の手順が実行されます:
次は、new 演算子がどのように機能するかを示す簡単な例です。
// 定义一个构造函数 function Person(name, age) { this.name = name; this.age = age; } // 使用new操作符创建一个实例对象 var person1 = new Person('Tom', 18); // 输出实例对象的属性值 console.log(person1.name); // 输出 'Tom' console.log(person1.age); // 输出 18
上記のコードでは、Person という名前のコンストラクターを定義します。コンストラクターは、name と age の 2 つのパラメーターを受け取り、それらをインスタンス オブジェクト person1 の属性として使用します。
new 演算子を使用して person1 インスタンスを作成する場合、最初に空のオブジェクトが作成され、次に空のオブジェクトのプロトタイプがコンストラクター person のプロトタイプ オブジェクトを指します。次に、コンストラクターのスコープが空のオブジェクトに割り当てられ、コンストラクター内でこれを介して空のオブジェクトにアクセスできるようになります。最後に、コンストラクター内のコードが実行され、名前と年齢が新しいオブジェクトのプロパティに割り当てられます。
したがって、new 演算子によって作成されたオブジェクト person1 には、コンストラクター person で定義された属性 name と age があり、これらの属性にはドット演算子を介してアクセスできます。
コンストラクター内で明示的にオブジェクトを返さないことに注意してください。コンストラクターがオブジェクトを返す場合、new 演算子によって作成されたインスタンスは、新しく作成されたオブジェクトではなく、返されるオブジェクトになります。例:
// 定义一个构造函数 function Person(name, age) { this.name = name; this.age = age; // 错误示例:返回一个对象 return { name: 'Error', age: -1 }; } // 使用new操作符创建一个实例对象 var person1 = new Person('Tom', 18); // 此时person1实际上是一个普通的对象,而不是Person的实例 console.log(person1 instanceof Person); // 输出 false console.log(person1.name); // 输出 'Error' console.log(person1.age); // 输出 -1
上記の例では、コンストラクター person は明示的にオブジェクトを返すため、person1 は実際には person のインスタンスではなく、通常のオブジェクトです。
要約すると、new 演算子は、新しいインスタンス オブジェクトを作成し、コンストラクターでオブジェクトのプロパティを初期化するために使用されます。 new 演算子によって作成されたインスタンス オブジェクトは、コンストラクターのプロトタイプ オブジェクトを継承し、コンストラクターで定義されたプロパティとメソッドにアクセスできます。
以上が新しい演算子は js でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。