আমি এর মতো একটি চলকটিতে একটি পুনরাবৃত্ত ফাংশন তৈরি করতে পারি:
/* Count down to 0 recursively.
*/
var functionHolder = function (counter) {
output(counter);
if (counter > 0) {
functionHolder(counter-1);
}
}
এই সঙ্গে, functionHolder(3);
আউটপুট হবে 3
2
1
0
। ধরা যাক আমি নিম্নলিখিতগুলি করেছি:
var copyFunction = functionHolder;
copyFunction(3);
3
2
1
0
উপরে হিসাবে আউটপুট হবে । আমি যদি তারপর functionHolder
নিম্নলিখিত পরিবর্তন :
functionHolder = function(whatever) {
output("Stop counting!");
তারপর functionHolder(3);
দিতে হবে Stop counting!
, প্রত্যাশিত হিসাবে।
copyFunction(3);
এখন 3
Stop counting!
এটি functionHolder
ফাংশন নয় (যা এটি নিজেই এটি নির্দেশ করে) হিসাবে উল্লেখ করে । এটি কিছু পরিস্থিতিতে আকাঙ্ক্ষিত হতে পারে তবে ফাংশনটি লেখার কোনও উপায় আছে যাতে এটি নিজেকে ধরে রাখে এমন পরিবর্তনশীলের পরিবর্তে নিজেকে কল করে?
এটিই কি কেবল লাইনটি পরিবর্তন করা সম্ভব হয় functionHolder(counter-1);
যাতে 3
2
1
0
আমরা কল করার সময় এই সমস্ত পদক্ষেপের মধ্য দিয়ে যাওয়া এখনও দেয় copyFunction(3);
? আমি চেষ্টা করেছি this(counter-1);
কিন্তু এটি আমাকে ত্রুটি দেয় this is not a function
।