본문 바로가기

JS & CSS/Javascript

자바스크립트 eval() 대신 대체 방법

# 자바스크립트의 만능키(?) 그만큼 위험부담도 큼 eval은 사용을 자제하라는게 일반적인 평론이다.

# 그럼 어떻게 eval을 대응 혹은 대신할것인지 알아보자. (출처는 구글 검색의 짬뽕..)


기존의 코드


function say(){
    alert('say yo ~')
}

eval('say()');


대체 방법


function say(){
   alert('say you ~');
}



new Function('return say()')()





다른 방법의 사용예


기존 방법


var jsonObj = { lang : 'javascript' }
var objName = 'lang'
console.log(  eval("jsonObj." + objName)  )



권장방법

var jsonObj = { lang : 'javascript' }
var objName = 'lang'

console.log (  jsonObj[objName] )