আপনি Object.getOwnPropertyNames()
অবজেক্টের সাথে সম্পর্কিত সমস্ত সম্পত্তি পেতে ব্যবহার করতে পারবেন , তা গণ্য হোক বা না হোক। উদাহরণ স্বরূপ:
console.log(Object.getOwnPropertyNames(Math));
//-> ["E", "LN10", "LN2", "LOG2E", "LOG10E", "PI", ...etc ]
তারপরে আপনি filter()
কেবলমাত্র পদ্ধতিগুলি ব্যবহার করতে পারেন :
console.log(Object.getOwnPropertyNames(Math).filter(function (p) {
return typeof Math[p] === 'function';
}));
//-> ["random", "abs", "acos", "asin", "atan", "ceil", "cos", "exp", ...etc ]
ইএস 3 ব্রাউজারগুলিতে (আইই 8 এবং নিম্ন), অন্তর্নির্মিত বস্তুর বৈশিষ্ট্যগুলি গণনাযোগ্য নয়। অবজেক্টসগুলি পছন্দ মতো window
এবং document
অন্তর্নির্মিত নয়, সেগুলি ব্রাউজার দ্বারা সংজ্ঞায়িত করা হয় এবং সম্ভবত নকশা দ্বারা গণনাযোগ্য।
থেকে ECMA-262 সংস্করণ 3 :
গ্লোবাল অবজেক্ট
একটি অনন্য গ্লোবাল অবজেক্ট (15.1) রয়েছে, যা নিয়ন্ত্রণের কোনও প্রয়োগের প্রসঙ্গে প্রবেশের আগে তৈরি হয়েছিল। প্রাথমিকভাবে গ্লোবাল অবজেক্টের নিম্নলিখিত বৈশিষ্ট্য রয়েছে:
• অন্তর্নির্মিত যেমন গণিত, স্ট্রিং, তারিখ, parseInt, ইত্যাদি বস্তু এই আছে বৈশিষ্ট্যাবলী {DontEnum} ।
Host অতিরিক্ত হোস্ট সংজ্ঞায়িত বৈশিষ্ট্য। এর মধ্যে এমন সম্পত্তি অন্তর্ভুক্ত থাকতে পারে যার মান বিশ্বব্যাপী অবজেক্ট; উদাহরণস্বরূপ, এইচটিএমএল ডকুমেন্ট অবজেক্ট মডেলটিতে গ্লোবাল অবজেক্টের উইন্ডো সম্পত্তি হ'ল গ্লোবাল অবজেক্ট।
নিয়ন্ত্রণ যেমন কার্যকরকরণ প্রসঙ্গে প্রবেশ করে এবং ইসিএমএসক্রিপ্ট কোড কার্যকর করা হয়, তত অতিরিক্ত বৈশিষ্ট্যগুলি বিশ্বব্যাপী অবজেক্টে যুক্ত হতে পারে এবং প্রাথমিক বৈশিষ্ট্যগুলি পরিবর্তিত হতে পারে।
আমার উল্লেখ করা উচিত যে এর অর্থ এই বস্তুগুলি গ্লোবাল অবজেক্টের অগণিত বৈশিষ্ট্য নয়। আপনি যদি বিশদটির নথিটির বাকী অংশটি সন্ধান করেন তবে আপনি দেখতে পাবেন যে এই সমস্ত বস্তুর অন্তর্নির্মিত বৈশিষ্ট্য এবং পদ্ধতিগুলির মধ্যে সেগুলিতে { DontEnum }
বৈশিষ্ট্য সেট রয়েছে।
আপডেট: একজন সহকর্মী এসও ব্যবহারকারী, সিএমএস, আমার দৃষ্টি আকর্ষণ করার জন্য একটি আইই বাগ{ DontEnum }
এনেছে ।
ডন্টইনাম বৈশিষ্ট্যটি পরীক্ষা করার পরিবর্তে, [মাইক্রোসফ্ট] জেএসক্রিপ্ট যে কোনও অবজেক্টের যে কোনও সম্পত্তির উপরে চলে যাবে যেখানে ডোনটেনাম বৈশিষ্ট্যযুক্ত অবজেক্টের প্রোটোটাইপ শৃঙ্খলে একই নামযুক্ত সম্পত্তি রয়েছে।
সংক্ষেপে, আপনার অবজেক্টের বৈশিষ্ট্যগুলির নামকরণের সময় সাবধান হন। যদি একই নামের কোনও অন্তর্নির্মিত প্রোটোটাইপ সম্পত্তি বা পদ্ধতি থাকে তবে for...in
লুপ ব্যবহার করার সময় আইই এটি এড়িয়ে যাবে ।