কোনও অবজেক্টের উদাহরণটি যাচাই করার সর্বোত্তম উপায় হ'ল উদাহরণস্বরূপ অপারেটর বা পদ্ধতিটির মাধ্যমে প্রোটোটাইপঅফ () যা কোনও বস্তুর প্রোটোটাইপ অন্য কোনও অবজেক্টের প্রোটোটাইপ শৃঙ্খলে থাকে কিনা তা পরীক্ষা করে।
obj instanceof jQuery;
jQuery.prototype.isPrototypeOf(obj);
তবে কখনও কখনও এটি কোনও দস্তাবেজে একাধিক jQuery উদাহরণগুলির ক্ষেত্রে ব্যর্থ হতে পারে। যেমন @ জর্জি আইভানকিন উল্লেখ করেছেন:
যদি আমি আছে $
আমার বর্তমান নামস্থান ইশারা মধ্যে jQuery2
এবং আমি বাইরের নামস্থান (যেখানে থেকে একটি বস্তু আছে $
হয় jQuery1
) তারপর আমি কোন উপায় ব্যবহার করতে হবে instanceof
যদি যে বস্তুর একটি হল চেক করার জন্য jQuery
বস্তু
এই সমস্যাটি কাটিয়ে ওঠার একটি উপায় হ'ল বন্ধ বা আইআইএফইতে জিকুয়েরি অবজেক্টটিকে এলিয়াস করে
//aliases jQuery as $
(function($, undefined) {
/*... your code */
console.log(obj instanceof $);
console.log($.prototype.isPrototypeOf(obj));
/*... your code */
}(jQuery1));
//imports jQuery1
সমস্যাটি কাটিয়ে ওঠার অন্যান্য উপায় হ'ল jquery
সম্পত্তি অনুসন্ধান করেobj
'jquery' in obj
তবে, আপনি যদি আদিম মানগুলির সাথে পরীক্ষা করে দেখার চেষ্টা করেন তবে এটি একটি ত্রুটি ছুঁড়ে দেবে, তাই আপনি নিশ্চিত obj
হয়ে পূর্ববর্তী পরীক্ষাটি পরিবর্তন করতে পারবেনObject
'jquery' in Object(obj)
যদিও পূর্বের উপায়টি নিরাপদ নয় (আপনি 'jquery'
কোনও বস্তুর মধ্যে সম্পত্তি তৈরি করতে পারেন ), আমরা উভয় পদ্ধতির সাথে কাজ করে বৈধতাটি উন্নত করতে পারি:
if (obj instanceof jQuery || 'jquery' in Object(obj)) { }
এখানে সমস্যাটি হ'ল যে কোনও বস্তু একটি সম্পত্তি jquery
নিজের হিসাবে সংজ্ঞায়িত করতে পারে , তাই প্রোটোটাইপটি জিজ্ঞাসা করা এবং অবজেক্টটি নেই null
বা না তা নিশ্চিত করার চেয়ে আরও ভাল উপায় হবে orundefined
if (obj && (obj instanceof jQuery || obj.constructor.prototype.jquery)) { }
দরুন বলপ্রয়োগ , if
বিবৃতি মূল্যায়নের দ্বারা শর্ট সার্কিট করতে হবে &&
অপারেটর যখন obj
কোন হল falsy মান ( null
, undefined
, false
, 0
, ""
), এবং তারপর অন্যান্য যাচাই সঞ্চালন আয়।
শেষ পর্যন্ত আমরা একটি ইউটিলিটি ফাংশন লিখতে পারি:
function isjQuery(obj) {
return (obj && (obj instanceof jQuery || obj.constructor.prototype.jquery));
}
আসুন একবার দেখে নেওয়া যাক: লজিকাল অপারেটর এবং সত্য / মিথ্যা
selector
সম্পত্তিটি অনেক আগেই অবচয় করা হয়েছিল এবং 3.0 সালে সরানো হয়েছিল। এমনকি পূর্ববর্তী সংস্করণগুলিতে, একটি jQuery অবজেক্টের একটি খালি নির্বাচক স্ট্রিং থাকতে পারে, উদাহরণস্বরূপ$(window)
কোনও নির্বাচক নেই।instanceof
পরিবর্তে ব্যবহার করুন।