আমি ড্যানিয়েল এক্স মুর ব্যবহার করতে পছন্দ করি {SUPER: SYSTEM}
। এটি এমন একটি শৃঙ্খলা যা সত্য উদাহরণের ভেরিয়েবল, বৈশিষ্ট্য ভিত্তিক উত্তরাধিকার, শ্রেণি শ্রেণিবিন্যাস এবং কনফিগারেশন বিকল্পগুলির মতো সুবিধা প্রদান করে। নীচের উদাহরণটি সত্য উদাহরণের ভেরিয়েবলগুলির ব্যবহারের চিত্রিত করে, যা আমি বিশ্বাস করি এটিই সবচেয়ে বড় সুবিধা। যদি আপনার উদাহরণ ভেরিয়েবলগুলির প্রয়োজন না হয় এবং কেবলমাত্র সরকারী বা ব্যক্তিগত ভেরিয়েবলগুলি নিয়ে খুশি হন তবে সম্ভবত আরও সহজ সিস্টেম রয়েছে।
function Person(I) {
I = I || {};
Object.reverseMerge(I, {
name: "McLovin",
age: 25,
homeState: "Hawaii"
});
return {
introduce: function() {
return "Hi I'm " + I.name + " and I'm " + I.age;
}
};
}
var fogel = Person({
age: "old enough"
});
fogel.introduce(); // "Hi I'm McLovin and I'm old enough"
বাহ, এটি নিজের পক্ষে খুব বেশি কার্যকর নয়, তবে একটি সাবক্লাস যুক্ত করে দেখুন:
function Ninja(I) {
I = I || {};
Object.reverseMerge(I, {
belt: "black"
});
// Ninja is a subclass of person
return Object.extend(Person(I), {
greetChallenger: function() {
return "In all my " + I.age + " years as a ninja, I've never met a challenger as worthy as you...";
}
});
}
var resig = Ninja({name: "John Resig"});
resig.introduce(); // "Hi I'm John Resig and I'm 25"
আরেকটি সুবিধা হ'ল মডিউল এবং বৈশিষ্ট্য ভিত্তিক উত্তরাধিকার রাখার ক্ষমতা।
// The Bindable module
function Bindable() {
var eventCallbacks = {};
return {
bind: function(event, callback) {
eventCallbacks[event] = eventCallbacks[event] || [];
eventCallbacks[event].push(callback);
},
trigger: function(event) {
var callbacks = eventCallbacks[event];
if(callbacks && callbacks.length) {
var self = this;
callbacks.forEach(function(callback) {
callback(self);
});
}
},
};
}
ব্যক্তি শ্রেণীর থাকার উদাহরণে বাইন্ডেবল মডিউল অন্তর্ভুক্ত থাকে।
function Person(I) {
I = I || {};
Object.reverseMerge(I, {
name: "McLovin",
age: 25,
homeState: "Hawaii"
});
var self = {
introduce: function() {
return "Hi I'm " + I.name + " and I'm " + I.age;
}
};
// Including the Bindable module
Object.extend(self, Bindable());
return self;
}
var person = Person();
person.bind("eat", function() {
alert(person.introduce() + " and I'm eating!");
});
person.trigger("eat"); // Blasts the alert!
প্রকাশ: আমি ড্যানিয়েল এক্স মুর এবং এটি আমার {SUPER: SYSTEM}
। জাভাস্ক্রিপ্টে কোনও শ্রেণি সংজ্ঞায়নের সেরা উপায়।