this, arrow function
この4つの意味
これは最近の関数で毎回変わることを覚えておいてください. window自体
直接書くか普通の関数で書くとwindow
なぜなら、グローバル空間に関数や変数を作成すると、jsはwindowというオブジェクトに格納されるからです. オブジェクト自体 マシン内で新しく生成されたオブジェクト. イベントリスナーのthis
このような状況を把握して作成した例です.
1.コールバックは一般関数この違い 簡単な方法を作成する オブジェクトのすべてのデータを追加 settimeoutを使用して を表示
関数自体の機能
1.コードの組み合わせを成功させたい場合に使用
2.I/O機器の作成
矢印関数の利点 I/Oマシンの作成時に表示しやすい パラメータで、カッコ を省略できます.が返された場合、カッコ は省略できます. forEachコールバック関数 イベントリスナー オブジェクトの関数
これは最近の関数で毎回変わることを覚えておいてください.
直接書くか普通の関数で書くとwindow
なぜなら、グローバル空間に関数や変数を作成すると、jsはwindowというオブジェクトに格納されるからです.
function 함수() {
console.log(this)
}
//둘은 같다.
함수();
window.함수();
let 오브젝트 = {
data: 'kim',
함수: function() { //오브젝트 안에, 함수도 넣을 수 있다.
console.log(this) //메소드 안에서 this를 쓰면, 그 함수를 가지고 있는 오브젝트 그자체.
}
}
오브젝트.함수(); //사용하기 위해서, ()를 붙여야함.
1, 2를 종합하면 그 객체 자체이다.
function 기계() {
this.이름 = 'kim'
}
let 오브젝트 = new 기계();
document.getElementById('버튼').addEventListener('click', function(e) {
//셋은 같다.
this;
e.currentTarget;
document.getElementById('버튼')
});
リファレンス'use strict'; //엄격하게 사용한다. 변수를 무조건 제대로 선언해야한다.
function 생략
함수(){ // function을 생략하는 신문법
console.log(this) //객체 그 자체 this
}
例このような状況を把握して作成した例です.
1.コールバックは一般関数
document.getElementById('버튼').addEventListener('click', function(e) {
let 어레이 = [1, 2, 3];
어레이.forEach(function(a) { //함수안에 들어간 함수 = 콜백함수
console.log(this) //콜백인 일반함수에 안에서 쓰였으므로 window다.
});
});
let 오브젝트 = {
이름들: ['김', '이', '박'],
함수: function() {
console.log(this)//객체 자체인 오브젝트 출력
오브젝트.이름들.forEach(function() {
console.log(this) //그냥 일반함수 이므로, window 출력
})
}
}
let 사람 = {
name: '손흥민',
sayHi() { //function없이 표현할 수 있다.
console.log(`안녕 나는 ${this.name}`)
}
}
사람.sayHi(); //안녕 나는 손흥민
作成方法var 자료 = {
data: [1, 2, 3, 4, 5]
}
자료.전부더하기 = function() {
let sum = 0;
this.data.forEach(function(a) { //여기서 this는 메소드 앞의 주인같은 느낌이다.
sum += a;
})
console.log(sum)
}
자료.전부더하기();
document.getElementById('btn').addEventListener('click', function() {
console.log(this.innerHTML) //버튼입니다.
setTimeout(() => {
console.log(this.innerHTML) //위와 동일, arrow function이라 바깥의 가장 가까운 this, 아래 참고
}, 1000)
});
arrow functionlet 오브젝트 = {
이름들: ['김', '이', '박'],
함수: function() {
console.log(this)//객체 자체인 오브젝트 출력
오브젝트.이름들.forEach(() => { //arrow function
console.log(this) //arrow function은 바깥의 가까운 오브젝트를 그대로 사용
})
}
}
リファレンス関数自体の機能
1.コードの組み合わせを成功させたい場合に使用
2.I/O機器の作成
矢印関数の利点
let 함수 = (a) => { return a + 10};
함수(5);
let 함수 = a => { return a + 10};
함수(5);
let 함수 = a => return a + 10 ;
함수(5);
矢印関数の例[1, 2, 3, 4].forEach(function(a) {
console.log(a);
})
위에 식이, 아래처럼 바뀐다.
[1, 2, 3, 4].forEach(a => console.log(a));
document.getElementById('버튼').addEventListener('click', (e) => {
this; //window다. arrow function이라, 바깥에 있던 this값을 내부에서 그대로 사용
});
let 오브젝트 = {
함수 : () => {
this; //window다. 마찬가지로 바깥에 있던 window인 this를 그대로 사용한다.
}
}
Reference
この問題について(this, arrow function), 我々は、より多くの情報をここで見つけました https://velog.io/@qk1890/this-arrow-functionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol