[JS] Object에 함수 할당하기

Park.Dyel·2020년 6월 18일
0

JS

목록 보기
1/3

🤔 함수를 객체의 속성으로 할당할 때 방식에 따라 무슨 차이가 있을까?

🎁 문제의 Obj

obj = {
  test(param){
    console.log(param);
    console.log(this);
    return;
  },
  test2:function(param){
    console.log(param)
    console.log(this);
	return;
  },
  test3:(param)=>{
    console.log(param);
    console.log(this);
    return;
  }
}
console.log(obj);
console.log(obj.test(1));
console.log(obj.test2(1));
console.log(obj.test3(1));

🐱‍🏍 TEST

🔍 TEST 1. 속성비교하기

test: ƒ test(param)
	arguments: (...)
	caller: (...)
	length: 1
	name: "test"
	__proto__: ƒ ()
	[[FunctionLocation]]: VM365:2
	[[Scopes]]: Scopes[2]
test2: ƒ (param)
	arguments: null
	caller: null
	length: 1
	name: "test2"
	prototype: {constructor: ƒ}
	__proto__: ƒ ()
	[[FunctionLocation]]: VM365:7
	[[Scopes]]: Scopes[2]
test3: (param)=> {…}
	arguments: (...)
	caller: (...)
	length: 1
	name: "test3"
	__proto__: ƒ ()
	[[FunctionLocation]]: VM365:12
	[[Scopes]]: Scopes[2]
	__proto__: Object

🔍 TEST 2. Function.prototype

obj = { 
  test(){},
  test2:function(){}
}
Function.prototype.test = function(e){console.log(e)}
obj.test.test => f
obj.test.test2 => f
profile
ㄱH발자

0개의 댓글