উত্তর:
আপনাকে একটি বেনামি ফাংশন তৈরি করতে হবে যাতে প্রকৃত ফাংশন এখনই সম্পাদন করা হয় না।
setInterval( function() { funca(10,3); }, 500 );
function createInterval(f,dynamicParameter,interval) { setInterval(function() { f(dynamicParameter); }, interval); }
তারপরে একে একে কল করুন createInterval(funca,dynamicValue,500);
অবশ্যই আপনি একাধিক প্যারামিটারের জন্য এটি প্রসারিত করতে পারেন। এবং, দয়া করে আরও বর্ণনামূলক চলক নাম ব্যবহার করুন। :)
funca
?
এখন ES5 দিয়ে, বাইন্ড পদ্ধতিতে ফাংশন প্রোটোটাইপ:
setInterval(funca.bind(null,10,3),500);
console.log.bind(null)("Log me")
নিক্ষেপ করবে Illegal invocation
তবে console.log.bind(console)("Log me")
প্রত্যাশা মতো কাজ করবে। এটি কারণ হিসাবে আর্গ হিসাবে console.log
প্রয়োজন । console
this
সেগুলি অন্তঃসত্ত্বায় পরামিতি হিসাবে যুক্ত করুন:
setInterval(funca, 500, 10, 3);
আপনার প্রশ্নের বাক্য বাক্যটি ইওল ব্যবহার করে, যা অনুশীলনের প্রস্তাব দেওয়া হয় না।
আপনি প্যারামিটার (গুলি) ফাংশন অবজেক্টের সম্পত্তি হিসাবে পাস করতে পারেন, প্যারামিটার হিসাবে নয়:
var f = this.someFunction; //use 'this' if called from class
f.parameter1 = obj;
f.parameter2 = this;
f.parameter3 = whatever;
setInterval(f, 1000);
তারপরে আপনার কার্যক্রমে আপনার someFunction
পরামিতিগুলির অ্যাক্সেস থাকবে। এটি শ্রেণীর অভ্যন্তরে বিশেষত কার্যকর যেখানে স্কোপটি স্বয়ংক্রিয়ভাবে গ্লোবাল স্পেসে চলে যায় এবং আপনি ক্লাসটির উল্লেখ হারিয়ে ফেলেন যা শুরু করে সেটইন্টারওয়াল বলে। এই পদ্ধতির সাথে, উপরের উদাহরণে "কিছু কিছু" এর "প্যারামিটার 2" এর সঠিক সুযোগ থাকবে।
setInterval(function(a,b,c){
console.log(a + b +c);
}, 500, 1,2,3);
//note the console will print 6
//here we are passing 1,2,3 for a,b,c arguments
// tested in node v 8.11 and chrome 69
আপনি একটি বেনামী ফাংশন ব্যবহার করতে পারেন;
setInterval(function() { funca(10,3); },500);
setInterval(function,milliseconds,param1,param2,...)
আপডেট: 2018 - "স্প্রেড" অপারেটরটি ব্যবহার করুন
function repeater(param1, param2, param3){
alert(param1);
alert(param2);
alert(param3);
}
let input = [1,2,3];
setInterval(repeater,3000,...input);
এখন পর্যন্ত সর্বাধিক ব্যবহারিক উত্তর হ'ল টভানফসন দিয়ে দেওয়া, আমি যা করতে পারি তা হ'ল ইএস with সহ আপনাকে একটি আপডেট সংস্করণ দেওয়া:
setInterval( ()=>{ funca(10,3); }, 500);
আর্গুমেন্টের উদ্ধৃতি যথেষ্ট হওয়া উচিত:
OK --> reloadIntervalID = window.setInterval( "reloadSeries('"+param2Pass+"')" , 5000)
KO --> reloadIntervalID = window.setInterval( "reloadSeries( "+param2Pass+" )" , 5000)
'
প্রতিটি যুক্তির একক উদ্ধৃতি নোট করুন ।
আইই 8, ক্রোম এবং ফায়ারফক্সের সাথে পরীক্ষিত
আমি জানি এই বিষয়টি এত পুরানো তবে setInterval
ফাংশনে পরামিতিগুলি পাস করার বিষয়ে আমার সমাধান এখানে ।
এইচটিএমএল:
var fiveMinutes = 60 * 2;
var display = document.querySelector('#timer');
startTimer(fiveMinutes, display);
javascript:
function startTimer(duration, display) {
var timer = duration,
minutes, seconds;
setInterval(function () {
minutes = parseInt(timer / 60, 10);
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
--timer; // put boolean value for minus values.
}, 1000);
}
timer
), তবে আপনি clearInterval()
এই পরিস্থিতিতে কীভাবে করবেন ?
আপনি আন্ডারস্কোর জেএস নামে একটি লাইব্রেরি ব্যবহার করতে পারেন। এটি বাইন্ড পদ্ধতিতে একটি দুর্দান্ত মোড়ক দেয় এবং এটি আরও অনেকগুলি ক্লিনার সিনট্যাক্স। আপনাকে নির্দিষ্ট স্কোপটিতে ফাংশনটি কার্যকর করতে দেওয়া।
_ বাইন্ড (ফাংশন, সুযোগ, * যুক্তি)
এই সমস্যাটি ক্লোজারগুলির ব্যবহারের জন্য দুর্দান্ত প্রদর্শন হবে। ধারণাটি হ'ল কোনও ফাংশন বাইরের স্কোপের একটি পরিবর্তনশীল ব্যবহার করে। এখানে একটি উদাহরণ ...
setInterval(makeClosure("Snowden"), 1000)
function makeClosure(name) {
var ret
ret = function(){
console.log("Hello, " + name);
}
return ret;
}
ফাংশন "মেকক্লোজার" আরও একটি ফাংশন প্রদান করে, এতে বাহ্যিক স্কোপ ভেরিয়েবল "নাম" অ্যাক্সেস রয়েছে। সুতরাং, মূলত, আপনার "মেকক্লোজার" ফাংশনে যে পরিমাণ ভেরিয়েবল পাস করতে হবে এবং সেগুলি "ret" ভেরিয়েবলের জন্য নির্ধারিত ফাংশনে ব্যবহার করতে হবে। প্রভাবশালীভাবে, সেটইন্টারওয়াল "ret" এর জন্য নির্ধারিত ফাংশন সম্পাদন করবে।
ভ্যু অ্যাপ্লিকেশনটিতে আমার একই সমস্যা ছিল। আমার ক্ষেত্রে এই সমাধানটি কেবল তখনই কার্যকর হয় যদি অজানা ফাংশনটি তীর ফাংশন হিসাবে mounted ()
লাইফ সার্কেল হুকের ঘোষণার বিষয়ে ঘোষণা করে ।
.setInterval(func, delay[, param1, param2, ...]);