0
내가 가지고
와 무한 호출 스택을 얻기 :이 자바 스크립트
var c = {
typeStart: function(msg, loc) {
loc.append("<p>");
this.typeLetter(msg, loc, 0);
},
typeLetter: function(msg, loc, pos) {
loc.append(msg.charAt(pos));
pos = pos + 1;
if (pos == msg.length) { this.typeEnd(loc); }
setTimeout(this.typeLetter(msg, loc, pos), 100);
},
typeEnd: function(loc) {
loc.append("</p>");
}
}
c.typeStart("hello", $("#somediv"));
어떤 이유로, 나는 분명히 typeLetter
이 무한대로 호출되고, 뭔가가있어. 나는 자바 스크립트의 비동기 성질과 관련 있다고 가정한다. 이 함수가 호출됩니다
typeLetter: function(msg, loc, pos) {
loc.append(msg.charAt(pos));
pos = pos + 1;
if (pos == msg.length) { this.typeEnd(loc); }
setTimeout(this.typeLetter(msg, loc, pos), 100);
}, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
및이 setTimeout
에 전달 될 결과 :
아, 네 말이 맞습니다. 나는 할 수있을 때 받아 들일 것이다. – n0pe