Objectহবা হ'ল, এবং Functionহ'ল আদম, আদম ( Function) হাড় Function.prototypeতৈরি করার জন্য তার হাড় ব্যবহার করে ( Object)। তাহলে আদম ( Function) কে সৃষ্টি করেছেন ? - জাভাস্ক্রিপ্ট ভাষার উদ্ভাবক :-)।
উত্সিনার উত্তর অনুসারে, আমি আরও দরকারী তথ্য যুক্ত করতে চাই।
আমার জন্য সবচেয়ে আশ্চর্যজনক বিষয়টি তার পরিবর্তে সেই Object.__proto__
পয়েন্টগুলি আবিষ্কার করছিল , তবে আমি নিশ্চিত যে এর জন্য একটি ভাল কারণ রয়েছে :-)Function.prototypeObject.prototype
এটা করা উচিত নয়। Object.__proto__নির্দেশ করা উচিত নয় Object.prototype। পরিবর্তে, উদাহরণস্বরূপ Object o, o.__proto__নির্দেশ করা উচিত Object.prototype।
(শর্তাদি classএবং instanceজাভাস্ক্রিপ্টে ব্যবহার করার জন্য আমাকে ক্ষমা করুন , তবে আপনি এটি জানেন :-)
আমি মনে করি ক্লাস Objectনিজেই একটি উদাহরণ Function, সে কারণেই Object.__proto__ === Function.prototype। সুতরাং: Objectহবা হ'ল, এবং Functionআদম হ'ল আদম ( Function) হাড় Function.prototypeতৈরি করার জন্য তার হাড় ব্যবহার করে ( Object)।
তদ্ব্যতীত, এমনকি শ্রেণি Functionনিজেই নিজের একটি উদাহরণ Function, এটি হ'ল Function.__proto__ === Function.prototypeএটিওFunction === Function.constructor
তদ্ব্যতীত, নিয়মিত বর্গ Catএকটি উদাহরণ Function, এটি হয় Cat.__proto__ === Function.prototype।
উপরের কারণটি হ'ল, যখন আমরা জাভাস্ক্রিপ্টে একটি ক্লাস তৈরি করি, আসলে আমরা কেবল একটি ফাংশন তৈরি করি যা এর উদাহরণ হওয়া উচিত Function। Objectএবং Functionশুধুমাত্র বিশেষ, তবে তারা এখনও ক্লাস, যখন Catএকটি নিয়মিত ক্লাস।
গুগল ক্রোম জাভাস্ক্রিপ্ট ইঞ্জিনে ফ্যাক্টর হিসাবে, নিম্নলিখিত 4:
Function.prototype
Function.__proto__
Object.__proto__
Cat.__proto__
তারা ===অন্য 3 এর সাথে সমস্ত (একেবারে সমান) এবং তাদের মান isfunction Empty() {}
> Function.prototype
function Empty() {}
> Function.__proto__
function Empty() {}
> Object.__proto__
function Empty() {}
> Cat.__proto__
function Empty() {}
> Function.prototype === Function.__proto__
true
> Function.__proto__ === Object.__proto__
true
> Object.__proto__ === Cat.__proto__
true
ঠিক আছে. তাহলে বিশেষ function Empty() {}( Function.prototype) কে তৈরি করেন ? চিন্তা করুন :-)