javascript - অবজ - একটি অ্যারে একটি ফাংশন আর্গুমেন্ট তালিকা রূপান্তর
জাভাস্ক্রিপ্ট বাংলা বই (4)
অনুরূপ বিষয় অন্য পোস্ট থেকে একটি খুব পঠনযোগ্য উদাহরণ:
var args = [ 'p0', 'p1', 'p2' ];
function call_me (param0, param1, param2 ) {
// ...
}
// Calling the function using the array with apply()
call_me.apply(this, args);
এবং এখানে মূল পোস্টের একটি লিঙ্ক যা আমি ব্যক্তিগতভাবে তার পঠনযোগ্যতার জন্য পছন্দ করি
https://code.i-harness.com
এই প্রশ্নটি ইতিমধ্যে একটি উত্তর আছে:
জাভাস্ক্রিপ্টে একটি ফাংশন আর্গুমেন্ট ক্রম মধ্যে রূপান্তর করা সম্ভব? উদাহরণ:
run({ "render": [ 10, 20, 200, 200 ] });
function run(calls) {
var app = .... // app is retrieved from storage
for (func in calls) {
// What should happen in the next line?
var args = ....(calls[func]);
app[func](args); // This is equivalent to app.render(10, 20, 200, 200);
}
}
@ ব্রিক - হ্যাঁ, আপনি এটি এমনভাবে করতে পারেন:
Element.prototype.setAttribute.apply(document.body,["foo","bar"])
কিন্তু যে তুলনায় অনেক কাজ এবং obfuscation মত মনে হয়:
document.body.setAttribute("foo","bar")
হ্যাঁ। JS এর বর্তমান সংস্করণগুলিতে আপনি ব্যবহার করতে পারেন:
app[func]( ...args );
ES5 এবং পুরোনো ব্যবহারকারীদের .apply()
পদ্ধতি ব্যবহার করতে হবে:
app[func].apply( this, args );
MDN এ এই পদ্ধতিগুলি পড়ুন:
- .apply()
- স্প্রেড "..." অপারেটর (সম্পর্কিত বিশ্রামের সাথে বিভ্রান্ত হবেন না ... "পরামিতি অপারেটর: এটি উভয়ই পড়তে ভাল!)
app[func].apply(this, args);