পরামিতি হিসাবে পরামিতিগুলির সাথে জাভাস্ক্রিপ্ট ফাংশনটি পাস করা কি সম্ভব?
উদাহরণ:
$(edit_link).click( changeViewMode( myvar ) );
পরামিতি হিসাবে পরামিতিগুলির সাথে জাভাস্ক্রিপ্ট ফাংশনটি পাস করা কি সম্ভব?
উদাহরণ:
$(edit_link).click( changeViewMode( myvar ) );
উত্তর:
একটি "বন্ধ" ব্যবহার করুন:
$(edit_link).click(function(){ return changeViewMode(myvar); });
এটি একটি বেনামে অস্থায়ী ফাংশন মোড়ক তৈরি করে যা প্যারামিটার সম্পর্কে জানে এবং এটিকে আসল কলব্যাক বাস্তবায়নে দেয়।
this.myFunction = this.myFunction.bind(this)আপনার constructorপদ্ধতিতে ব্যবহার করা উচিত । তবে, যেমনটি আপনি বলেছেন, যখন আপনি প্রত্যেকটির জন্য এটির জন্য বিভিন্ন প্রসঙ্গটি পাস করতে হয়, সেই সারিটির বিশদ পৃষ্ঠাটি খোলার জন্য আপনি যে সমস্ত পৃথক সারি ক্লিক করেন সেটির মতো, এটি এড়ানো যায় না।
ব্যবহার Function.prototype.bind()। এমডিএন উদ্ধৃত:
bind()পদ্ধতি একটি নতুন ফাংশন যা, যখন বলা হয়, তার রয়েছে সৃষ্টিthisশব্দ সেট প্রদান করা মান, পূর্ববর্তী যখন নতুন ফাংশন বলা হয় কোন প্রদত্ত যুক্তিগুলির একটি প্রদত্ত ক্রম সঙ্গে।
এটি IE9 + সহ সমস্ত বড় ব্রাউজার দ্বারা সমর্থিত।
আপনার কোডটি দেখতে এমন হওয়া উচিত:
$(edit_link).click(changeViewMode.bind(null, myvar));
পার্শ্ব দ্রষ্টব্য: আমি ধরে নিই যে আপনি বিশ্বব্যাপী প্রেক্ষাপটে, অর্থাত thisপরিবর্তনশীল window; অন্যথায় thisপরিবর্তে ব্যবহার করুন null।
$.ajax(url).done(handler.bind(this, var1, var2));
হ্যাঁ, এটি পছন্দ করুন:
$(edit_link).click(function() { changeViewMode(myvar) });
অথবা আপনি যদি এস 6 ব্যবহার করছেন তবে আপনার তীর ফাংশনটি ব্যবহার করতে সক্ষম হওয়া উচিত
$(edit_link).click(() => changeViewMode(myvar));
তুমি এটি করতে পারো
var message = 'Hello World';
var callback = function(){
alert(this)
}.bind(message);
এবং তারপর
function activate(callback){
callback && callback();
}
activate(callback);
অথবা যদি আপনার কলব্যাকে আরও নমনীয় যুক্তি থাকে তবে আপনি বস্তুটি পাস করতে পারেন।
এটি ফার্দিনান্দ বেয়ারের পদ্ধতির অনুসরণের একটি উদাহরণ:
function function1()
{
function2(function () { function3("parameter value"); });
}
function function2(functionToBindOnClick)
{
$(".myButton").click(functionToBindOnClick);
}
function function3(message) { alert(message); }
এই উদাহরণে "পরামিতি মান" একটি ফাংশন মোড়ানো ব্যবহার করে ফাংশন 2 এর মাধ্যমে ফাংশন 1 থেকে ফাংশন 3 এ স্থানান্তরিত হয়।