ES6 (নীচে সেন্ডী হালিমের উত্তর দ্বারা অনুপ্রাণিত):
myFunction.name
এমডিএন-তে ব্যাখ্যা । 2015 পর্যন্ত নোডেজ এবং আইই ব্যতীত সমস্ত বড় ব্রাউজারগুলিতে কাজ করে।
দ্রষ্টব্য: আবদ্ধ ফাংশনগুলিতে এটি " bound <originalName>
" দেবে। আসল নামটি পেতে চাইলে আপনাকে "আবদ্ধ" স্ট্রিপ করতে হবে।
ES5 (ভ্লাদ এর উত্তর দ্বারা অনুপ্রাণিত):
আপনার যদি ফাংশনটির কোনও রেফারেন্স থাকে তবে আপনি এটি করতে পারেন:
function functionName( func )
{
// Match:
// - ^ the beginning of the string
// - function the word 'function'
// - \s+ at least some white space
// - ([\w\$]+) capture one or more valid JavaScript identifier characters
// - \s* optionally followed by white space (in theory there won't be any here,
// so if performance is an issue this can be omitted[1]
// - \( followed by an opening brace
//
var result = /^function\s+([\w\$]+)\s*\(/.exec( func.toString() )
return result ? result[ 1 ] : '' // for an anonymous function there won't be a match
}
- আমি এর উপর ইউনিট পরীক্ষা চালিয়েছি না, বা বাস্তবায়নের পার্থক্য যাচাই করেছি, তবে নীতিগতভাবে এটি কাজ করা উচিত, যদি কোনও মন্তব্য না দেয়।
- দ্রষ্টব্য: সীমাবদ্ধ ফাংশনগুলিতে কাজ করবে না
- দ্রষ্টব্য: এটি
caller
এবং callee
অবচয় বলে বিবেচিত হয়।
[1] আমি এটিকে এখানে অন্তর্ভুক্ত করছি কারণ এটি আইনী এবং প্রায়শই পর্যাপ্ত সিনট্যাক্স হাইলাইটিং সরঞ্জামগুলি ফাংশনটির নাম এবং প্রথম বন্ধনের মধ্যবর্তী সাদা স্থানটিকে বিবেচনায় নিতে ব্যর্থ হয়। অন্যদিকে, আমি .toString () এর কোনও প্রয়োগের বিষয়ে অবগত নই যা এখানে সাদা স্থান অন্তর্ভুক্ত করবে, তাই আপনি এটিকে বাদ দিতে পারেন।
মূল প্রশ্নের উত্তর হিসাবে, আমি পরজীবী উত্তরাধিকারটি ছেড়ে দেব এবং আরও কিছু traditionalতিহ্যবাহী ওওপি ডিজাইনের নিদর্শনগুলিতে যাব। সি ++ (এখনও সম্পূর্ণ নয়, তবে বেশিরভাগই) একটি বৈশিষ্ট্য সেট সহ জাভাস্ক্রিপ্টে আরামে ওওপি কোড লিখতে আমি একটি টিডবিটস লিখেছিলাম oওজেজে ।
আমি মন্তব্যগুলি দেখতে পাচ্ছি যা আপনি তথ্য প্রেরণ এড়াতে চান parent
এটির নির্মাণকারীর কাছে প্রয়োজনীয় । আমার অবশ্যই স্বীকার করতে হবে যে traditionalতিহ্যবাহী নকশার ধরণগুলি আপনাকে সেই থেকে রক্ষা করবে না, কারণ আপনার নির্ভরতাগুলি সুস্পষ্ট এবং প্রয়োগ করার জন্য এটি সাধারণত একটি ভাল জিনিস হিসাবে বিবেচিত হয়।
আমি বেনামে ফাংশন থেকে দূরে থাকার পরামর্শ দিতে হবে। তারা কেবল পিটাকে ডিবাগিং এবং প্রোফাইলিং করে কারণ সবকিছু "বেনামে ফাংশন" হিসাবে দেখায় এবং তাদের কোনও লাভ নেই যা সম্পর্কে আমি সচেতন।