矢印関数


1.矢印関数とは?

//기존 함수
function doubles(a) {
  return 2 * a;
};

//화살표 함수를 사용한 경우
let doubles = (a) => {return 2 * a};

2.関数宣言方法


行きましょう。パラメータの違い


1)パラメータがありません。

let myfunction = () => {...};

2)パラメータが1つしかない場合

let myfunction = a => {...};

3)パラメータが複数の場合

let myfunction = (a, b) => {...};

私。関数の長さの違い


1)関数が文の場合

let myfunction = a => 2 * a;

2)関数が複数の文の場合

let myfunction = a => {return 2 * a};

3.一般関数と矢印関数のthis


通常の関数で使用されるthis値は、関数がどのように呼び出されるかによって異なります.次の例です.オブジェクト内でthisを呼び出すとは、オブジェクト自体を指します.
window.param = "global param";

function printParam() {
	console.log(this.param);
};

let object = {
	param: "object param",
	func: printParam
};
let object2 = {
	param: "object2 param",
	func: printParam
};

object.func(); //"object param"
object2.func(); //"object2 param"
逆に、矢印関数で使用されるthisは、呼び出された時点に関係なく、宣言された時点で決定され、常に親のthisを指します.
window.param = "global param";

let printParam = () => {
	console.log(this.param);
};

let object = {
	param: "object param",
	func: printParam
};
let object2 = {
	param: "object2 param",
	func: printParam
};

object.func(); //"global param"
object2.func(); //"global param"
次に別の例を示します.
//일반 함수인 경우
let object = {
	myName: "Barbie",
	logName: function() {
    	console.log(this.myName);
    }
};
object.logName(); //"Barbie"

//화살표 함수의 경우
let object = {
	myName: "Barbie",
	logName: () => {
    	console.log(this.myName);
    }
};
object.logName(); //undefined

//밖에서 myName에 값을 미리 할당해준 경우
window.myName = "Molang";
let object = {
	myName: "Barbie",
	logName: () => {
    	console.log(this.myName);
    }
};
object.logName(); //"Molang"
ソース例:https://codedot.co.kr/9https://velog.io/@drazing hannah/JavaScript-矢印関数矢印-function-既知