아래에 게시 한 동일한 예제에 따라이 함수를 호출하려고합니다. 그래서 문제는 내가 함수를 호출하는 데 사용하는 메서드가 작동하지 않는다는 것입니다. 리스닝 이벤트를 통해 해당 함수를 호출 할 것이기 때문에 그런 것이 필요합니다. 어떤 사람은 그것을 할 바로 알고 있습니까?
고마워.
//variables
var ta = 3213;
var da = 44;
var s = [];
//Create string representation of function
s[1] = "function test0(){ alert(" + da + "); }";
s[0] = "function test1(){ alert(" + ta +"); }";
//"Register" the function
for(i=0; i< s.length; i++){
eval(s[i]);
}
// calling the function
this["test"+1];
보통 우리는 eval을 피해야합니다. 당신이하려는 것은 eval을 사용하지 않고 더 간단한 코드로 가능합니다.
//variables
var ta = 3213;
var da = 44;
var s = [];
//Create string representation of function
s[1] = function test0(){ alert(" + da + "); };
s[0] = function test1(){ alert(" + ta +"); };
s.forEach((fun) => { this[fun.name] = fun;});
// calling the function
this["test"+1]();
또는 코드에서 간단합니다.
this["test"+1]();
편집하다:
함수 이름을 문자열로 가져 오기 때문에 string 및 eval을 사용하는 경우 대신 객체를 만들 수 있습니다.
var data = {};
for(var i = 0; i<10; i++) {
data['key'+ i] = function (i) { alert(i); }.bind(null, i);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다