TIL no.14-JS矢印関数(矢印関数)
![](https://s1.md5.ltd/image/6749b87404bd7529ff42442ea37f411d.png)
矢印関数
既存の関数function add(a, b){ return a + b };
矢印関数const add = (a, b) => a + b;
矢印関数フィーチャー
function add(a, b){ return a + b };
const add = (a, b) => a + b;
const nubmers = [1,2,3,4,5];
const odd = numbers.filter(function(x) {
return x%2 === 1;
});
矢印関数const numbers = [1,2,3,4,5]
const odd = numbers.filter( x => x%2 === 1);
一目で簡潔に見えるでしょう?「=>」を使用するには、関数やreturnを使用する必要はありません.
なお、パラメータが1の場合は括弧を省略することができる.
const double = x => {x * 2}
関数を1行で表すことができる場合は、カッコを省略することもできます.const double = x => x * 2
関数が実行されると、外部スキャンプログラムが受信します.
ES 5<->変換ES 6関数
// ES5 기존 함수
function welcome(name){
return "안녕하세요" + name
}
// ES6 화살표 함수
const welcome = (name) => {
return "안녕하세요" + name
}
// ES6 화살표 함수
const handleBio = (nickname, bio) => {
const user = {
nickname : nickname,
bio : bio,
}
return user;
}
// ES5 기존 함수
function handleBio(nickname, bio) {
const user = {
nickname = nickname,
bio : bio
}
return user
}
矢印関数は既存の関数に置き換えられますか?
矢印関数は既存の関数を完全に置き換えることはできません.そのためです.
一般的な関数では、関数を呼び出す方法で、関数にバインドするオブジェクトが動的に決定されます.
矢印関数の場合、バインドするオブジェクトが静的に定義されます.
->あくまで大尉のthis(メキシコthis)
例を挙げる.
btn.addEventListner("click", function() {
console.log(this.textContent);
}):
このコードにはfunctionが含まれており、thisは自分を示しています.ボタンをクリックすると、ボタンのテキスト値が出力されます.
btn.addEventListner("click", () => {
console.log(this.textContent); // undefined
}):
このような矢印関数では、ボタンのテキストは出力されません.それは、親ブロックに囲まれているため、それ自体ではありません.したがって、メソッド、コンストラクション関数、addEventLister関数のコールバック関数として矢印関数を使用することはできません!
Reference
この問題について(TIL no.14-JS矢印関数(矢印関数)), 我々は、より多くの情報をここで見つけました https://velog.io/@playck/TIL-no.13-JS-화살표-함수-arrow-functionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol