এর আগের আর্টিকেলে আমরা দেখেছি কিভাবে কিছু ডিফল্ট ভ্যালু সহ ব্যাকবোন মডেল ইনিশিয়ালাইজ করা যায়। এবার চলুন আমাদের মডেলে কিছু মেথড যোগ করি। নিচের কোডে আমরা getName()
নামে একটি মেথড যোগ করব যার কাজ হবে আমাদের person
মডেলের firstName
এবং lastName
একসাথে রিটার্ন দেয়া
var person = Backbone.Model.extend({
defaults:{
firstName: "The",
lastName: "Anonymous",
age: 0
},
getName: function(){
return this.get("firstName") + " " + this.get("lastName");
}
});
var p1 = new person({
firstName:"Aron",
lastName:"Springfield"
});
console.log(p1.getName());
//this will output Aron Springfield
উপরের কোডে খেয়াল করলে দেখবেন যে আমরা আমাদের person
মডেলে getName()
নামে একটি মেথড যোগ করেছি নিচের মত করে। আগেই বলেছি যে ব্যাকবোনের অবজেক্ট গুলো JSON ফরম্যাট এ লেখা হয়, তাই নতুন প্রপার্টি বা মেথড যোগ করতে গেলে কোডের এই স্ট্রাকচার টাই অনুসরণ করা বাঞ্ছনীয়।
getName: function(){
return this.get("firstName") + " " + this.get("lastName");
}
মেথডের ভেতর থেকে বর্তমান অবজেক্টের কোন প্রপার্টি অ্যাক্সেস করতে গেলে সেটা সবসময় this
কি-ওয়ার্ড দিয়ে করতে হয়। জাভাস্ক্রিপ্টে কোন মেথড এর ভেতরে this
কি-ওয়ার্ডটি সবসময় যেই অবজেক্টের মাঝে থেকে কল করা হচ্ছে সেই অবজেক্ট এর রেফারেন্স হিসেবে কাজ করে
আমরা চাইলে this.get("firstName")
এর বদলে this.attributes["firstName"]
এভাবেও প্রপার্টির ভ্যালু অ্যাক্সেস করতে পারতাম, কিন্তু সেটা না করাই ভাল। প্রপার্টির ভ্যালু অ্যাক্সেস করতে গেলে সবসময় get() কিংবা set() মেথড দুটো ব্যবহার করা উচিত
পূর্ববর্তী অংশ: ব্যাকবোন মডেল ব্যবহার শুরু করা | পরবর্তী অংশ: মডেলের ডেটা ভ্যালিডেশন