JAvascript basics#5ジェネレータ、演算子new
8032 ワード
JAvascript basics#5ジェネレータ、演算子new
https://javascript.info/.
類似オブジェクトを多数作成する必要がある場合は、コンストラクション関数
技術的には一般的な関数ですが、2つの程度の制限があります.大文字で始まる 新しい空のオブジェクトを作成し、 関数の本体が実行され、 値 コードで表現すると、次のことが起こります.
注意しなければならないのは、どの関数も
オブジェクトを作成するために複数行のコードが必要な場合は、次のようにコンストラクション関数にバインドできます.
この文法はあまり使わないので、このままでいいです.
関数内では、
一般的な関数の結果は
以上のように
ライブラリなどで使用して、コードをより柔軟にすることもできます.ライブラリユーザがうっかり
通常、ジェネレータは
「オブジェクトが 原語が
上記2つのコンストラクタがある場合、
結果は以下の通りです.
オブジェクトを返すコンストラクタは
コンストラクション関数でカッコを省略すると、配列として何も入力されていないのと同じ結果が得られます.
コンストラクション関数では、
たとえば、次のソースコードは、
上記のように呼びます.これよりも高度な構文があります.
コンストラクション関数はすべて通常の関数です.しかし、最初の最初の文字は大文字でなければならないという会議がありました. コンストラクション関数は、常にキーワード
https://javascript.info/.
類似オブジェクトを多数作成する必要がある場合は、コンストラクション関数
"new"
演算子を使用します.コンストラクタ
技術的には一般的な関数ですが、2つの程度の制限があります.
"new"
演算子によって実行される必要があります.function Person(name) {
this.name = name;
this.isGenius = false;
}
let person = new Person("Jake");
alert(user.name);
alert(user.isGenius);
上記の関数がキーワードnew
とともに実行されると、次の手順が実行されます.this
に割り当てます.this
に新しいpropertyが追加されます.this
|が返されます.function Person(name) {
// this = {}; (암묵적으로)
this.name = name;
this.isGenius = false;
// return this; (암묵적으로)
}
したがってlet person = new Person("Jake")
は、次のコードの結果と同じです.let person = {
name: "Jake",
isGenius: false
}
他のPerson
new Person("Other's Name")
を追加したい場合は.この方法は毎回文字を使うよりずっと簡単で、読みやすいです.注意しなければならないのは、どの関数も
new
キーワードと一緒に使用できるので、「大文字」のような会議を確保したほうがいいことです.構造関数の即時割り当てと使用
オブジェクトを作成するために複数行のコードが必要な場合は、次のようにコンストラクション関数にバインドできます.
let user = new function() {
this.name = "Jake";
this.isGenius = false;
}
上のジェネレータはどこにも格納されていないため、再呼び出すことはできません.したがって、この方法の目的は、オブジェクトが使用されなくなったときにカプセル化することです.テスト作成モード:new。target
この文法はあまり使わないので、このままでいいです.
関数内では、
new
propertyを使用して、キーワード呼び出しnew.target
propertyを使用するかどうかを決定できます.一般的な関数の結果は
new.target
が空ですが、new
が呼び出されると、関数自体が表示されます.以上のように
new.target
使用可能:ライブラリなどで使用して、コードをより柔軟にすることもできます.ライブラリユーザがうっかり
new
キーワードを漏らしても、オブジェクトはよく生成されます.ジェネレータから戻る
通常、ジェネレータは
return
キーワードを使用しません.this
でいくつかのことをします.this
は戻ります.「
return
キーワードが使用可能な場合、ルールは次のとおりです.return
の場合、this
ではなくオブジェクトが返されます.return
の場合は無視します.上記2つのコンストラクタがある場合、
結果は以下の通りです.
オブジェクトを返すコンストラクタは
new
演算子を使用して既存の作成オブジェクトを返し、原語を返すコンストラクタはnew
演算子を使用してthis
をよく返します.newキージェネレータ関数のカッコをスキップ
コンストラクション関数でカッコを省略すると、配列として何も入力されていないのと同じ結果が得られます.
コンストラクション関数のメソッド
コンストラクション関数では、
this
キーワードはPropertyにもメソッドにも使用できます.たとえば、次のソースコードは、
name
propertyとwhoAmI
メソッドを同時に持つオブジェクトを作成します.function Person(name) {
this.name = name;
this.whoAmI = function() {
console.log(`my name is ${this.name}`);
}
}
上記のように呼びます.これよりも高度な構文があります.
class
と呼ばれ、後述します.サマリ
new
とともに呼び出される必要があります.new
キーワードは、空のthis
にpropertyとメソッドを加えて返すことを示す.Reference
この問題について(JAvascript basics#5ジェネレータ、演算子new), 我々は、より多くの情報をここで見つけました https://velog.io/@jakeseo_me/javascript-basics-5-생성자-연산자-newテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol