JavaScriptベース8
call
callメソッドは、すべての関数に使用でき、特定の値として指定できます.
const mike = {
name: "mike",
};
const tom = {
name: "tom",
};
function showThisName() {
console.log(this.name);
}
function update(birthyear, occupation) {
this.birthyear = birthyear;
this.occupation = occupation;
}
showThisName.call(mike);
update.apply(mike, [1999, "singer"]);
update.call(mike, 1999, "singer");
console.log(mike);
apply
applyはcallと全く同じですが、関数パラメータは処理されません.
callは従来の関数と同様にパラメータを直接受信するが,applyはパラメータを配列として受信する.
bind
JavaScriptは、関数がどのように呼び出されても指定できます.
関数のこの値は永久に変更できます.
このキーワードは、このキーワードを使用する関数がどのように呼び出されるかによって異なる場合があります.関数のcontextで参照されるオブジェクトを必要なオブジェクトに置き換えたい場合があります.簡単に言えば『これを好きなように変えたい~』
This
これはJavaScriptの最も煩わしい部分を学ぶのです...
JavaScriptでは、これは基本的にwindowです.状況が違うので、
これは、関数で関数を呼び出すコンテキスト(context)を意味します.「脈絡」は、状況に応じて変化するという意味です.つまり、関数をどのように呼び出すかによって、そのオブジェクトが異なることを意味します.
コンストラクション関数では、thisはコンストラクション関数で作成されたオブジェクトを指します.WindowsではWindows、コンストラクション関数では作成するオブジェクト(呼び出し後にオブジェクトを作成)です.
メソッドでは、thisはメソッドが属するオブジェクトを指します.
ここまでならまだ...
Javaでは、thisはオブジェクト自体への参照値です.JSの場合、これは関数呼び出しの仕方によって、このオブジェクトにバインドするオブジェクトを動的に決定します.
メソッドの内部関数の場合、thisはグローバルオブジェクトにバインドされます.
https://hae-ong.tistory.com/14
https://mingcoder.me/2020/02/27/Programming/JavaScript/this/
矢印関数をすばやく使うだけで、私の知っているjavaのthisになります.
Reference
この問題について(JavaScriptベース8), 我々は、より多くの情報をここで見つけました https://velog.io/@stella6767/자바스크립트-기초-8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol