की वापसी पिछले एक के लिए एक विस्तार के लिए एक नया सवाल को खोलने के लिए नफरत है:जावास्क्रिप्ट पुनरावर्ती क्रिया
function ctest() {
this.iteration = 0;
this.func1 = function() {
var result = func2.call(this, "haha");
alert(this.iteration + ":" + result);
}
var func2 = function(sWord) {
this.iteration++;
sWord = sWord + "lol";
if (this.iteration < 5) {
func2.call(this, sWord);
} else {
return sWord;
}
}
}
इस रिटर्न यात्रा = 5 लेकिन अपरिभाषित परिणाम? वो कैसे संभव है ? मैं स्पष्ट रूप से sWord वापस आते हैं। इसे "hahalollollollollol" और केवल डबल चेक के लिए वापस किया जाना चाहिए था, अगर मैं वापसी sword से ठीक पहले (sWord) को अलर्ट करता हूं तो यह सही तरीके से प्रदर्शित करता है।