기능을 재 할당하는 데 문제가 있습니다. 이전에 정의한 함수 drawScene
을 다른 방법으로 지정하려고합니다.eval을 사용한 자바 스크립트 기능 할당
function fSwap(funcName, code) {
eval(funcName) = eval(code);
}
fSwap("drawScene", "function drawScene() { /* Do something */ }");
나는이 일을해야 같은 느낌,하지만 어떤 이유로 eval(funcName)
에 대한 좌변이 아니며 오류 ReferenceError: invalid assignment left-hand side
를 반환합니다. 모든 당혹는 다음과 같습니다
var a = function test() {return 0;};
alert(a === eval("a"));
eval("a") = function test() {return 1;};
가 true
와 경고를 제공하지만, 나를 기능 a
에 할당하지 않습니다.
내 생각에 eval()은 보안 상 이유로 lvalues를 반환하지 않습니다. 그렇다면 어떻게 fSwap()을 구현하여 두 개의 문자열을 가져 와서 주어진 함수 이름에 코드를 할당 할 수 있습니까?
왜 {뭔가 * /를 수행/*}'drawScene =() 함수를 사용하지, '전혀 평가하지 않고도? – Vitruvius
사용자가 입력 한 문자열을 함수에 할당하려고합니다. – JDong