화살표 함수와 생성자

손성오·2023년 11월 9일

JS로 게임을 만들던 도중

const Devil=()=>{
this.x=0
this.y=0
this.init=function(){
this.y=0
this.x=generateRandomValue(0,canvas.width-64)
devilList.push(this)
}
}

과 같은 함수를 만든후

const createDevil=()=>{
const interval =setInterval(function(){ //1초마다 적군생성
let d= new Devil()
d.init()
},1000)
}

다음과 같이 생성해 주었다.

이때 오류가 발생하였는데

Uncaught TypeError: Devil is not a constructor
at main.js:92:12

다음과 같이 Devil이 생성되지 않았다는 것이다.

이유가 무엇일지 구글링을 통해 알아보았는데

const Foo = () => {};
const foo = new Foo() // TypeError: Foo is not a constructor

다음과 같이 화살표 함수는 생성자 함수로는 사용할수 없게 만들어졌다는 점이었다

POEIMAWAB에서 더욱 자세한 이유를 알 수 있었는데

화살표 함수에는 prototype 프로퍼티를 가지고 있지 않아서 생성자 함수로는 사용할 수 없다는 것이다

0개의 댓글