javascript - AngularJS মধ্যে প্রোটোটাইপ/prototypical উত্তরাধিকার সুযোগ ন্যান্সি কি কি?




inheritance prototype (2)

আমি @ স্কট Driscoll উত্তর জাভাস্ক্রিপ্ট সঙ্গে প্রোটোটিক্যাল উত্তরাধিকার একটি উদাহরণ যোগ করতে চাই। আমরা Object.create () এর সাথে ক্লাসিক্যাল উত্তরাধিকার প্যাটার্ন ব্যবহার করব যা ইকস্ক্রিপ্ট 5 স্পেসিফিকেশনের একটি অংশ।

প্রথম আমরা "মূল" বস্তু ফাংশন তৈরি

function Parent(){

}

তারপর "অভিভাবক" বস্তুর ফাংশন একটি প্রোটোটাইপ যোগ করুন

 Parent.prototype = {
 primitive : 1,
 object : {
    one : 1
   }
}

"শিশু" বস্তুর ফাংশন তৈরি করুন

function Child(){

}

শিশু প্রোটোটাইপ বরাদ্দ করুন (শিশু প্রোটোটাইপটি পিতামাতা প্রোটোটাইপ থেকে উত্তরাধিকারী করুন)

Child.prototype = Object.create(Parent.prototype);

সঠিক "শিশু" প্রোটোটাইপ কনস্ট্রাক্টর বরাদ্দ করুন

Child.prototype.constructor = Child;

একটি শিশু প্রোটোটাইপে "changeProps" পদ্ধতিটি যোগ করুন, যা শিশু বস্তুতে "আদিম" সম্পত্তি মানটি পুনঃলিখন করবে এবং শিশু এবং পিতামাতার উভয় বস্তুর মধ্যে "object.one" মান পরিবর্তন করবে

Child.prototype.changeProps = function(){
    this.primitive = 2;
    this.object.one = 2;
};

অভিভাবক (বাবা) এবং শিশু (পুত্র) বস্তু শুরু করুন।

var dad = new Parent();
var son = new Child();

চাইল্ড (ছেলে) কে কল করুনপপ পদ্ধতি

son.changeProps();

ফলাফল পরীক্ষা করে দেখুন।

মূল আদিম সম্পত্তি পরিবর্তন হয়নি

console.log(dad.primitive); /* 1 */

শিশু আদিম সম্পত্তি পরিবর্তন (পুনরায় লেখা)

console.log(son.primitive); /* 2 */

অভিভাবক এবং শিশু object.one বৈশিষ্ট্য পরিবর্তিত

console.log(dad.object.one); /* 2 */
console.log(son.object.one); /* 2 */

এখানে কাজ করছেন http://jsbin.com/xexurukiso/1/edit/

বস্তুর আরও তথ্য এখানে https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/create

API রেফারেন্স স্কোপ পৃষ্ঠাটি বলে:

একটি সুযোগ একটি পিতা বা মাতা সুযোগ থেকে উত্তরাধিকারী করতে পারেন

ডেভেলপার গাইড স্কোপ পৃষ্ঠাটি বলে:

একটি সুযোগ (prototypically) তার পিতামাতার সুযোগ থেকে সম্পত্তি উত্তরাধিকারী।

সুতরাং, একটি সন্তানের সুযোগ সবসময় প্রোটোটিক্যালি তার পিতামাতার সুযোগ থেকে উত্তরাধিকারী? ব্যতিক্রম আছে কি? এটা উত্তরাধিকারী হয়, এটা সবসময় স্বাভাবিক জাভাস্ক্রিপ্ট prototypal উত্তরাধিকার হয়?


আমি মার্কের উত্তরের সাথে প্রতিদ্বন্দ্বিতা করতে চাই না, তবে অবশেষে সবকিছুকে জাভাস্ক্রিপ্ট উত্তরাধিকার এবং তার প্রোটোটাইপ শৃঙ্খলে নতুন কিছু হিসাবে ক্লিক করে এমন টুকরাটি হাইলাইট করতে চেয়েছিলাম।

শুধুমাত্র সম্পত্তি প্রোটোটাইপ চেইন অনুসন্ধান সার্চ, লিখতে না। সুতরাং যখন আপনি সেট

myObject.prop = '123';

এটা চেইন তাকান না, কিন্তু যখন আপনি সেট

myObject.myThing.prop = '123';

সেখানে লেখা একটি সূক্ষ্ম পড়া আছে যে লেখার অপারেশন যে আমার প্রোপ লেখার আগে MyThing তাকান করার চেষ্টা করে। তাই এই কারণে শিশু থেকে বস্তু। প্রোপার্টিগুলিতে লেখাপড়া পিতামাতার বস্তুগুলিতে পায়।





prototypal-inheritance