/**
Create a new JsgeObject
@class represent a object in a game. It is a base class of all classes in Jsge.
@constructor
@param {Number} x the x position of the object.
@param {Number} y the y position of the object.
*/
function JsgeObject(x, y) {
this.x = x;
this.y = y;
this.data = null;
}
จากตัวอย่างโค้ดข้างต้น เราจะเห็นว่าในส่วนคอมเมนต์ (Comment) มีคำอธิบายคลาสอยู่พร้อมกับแท๊ก (Tag) พิเศษ อย่างเช่น @param หรือ @returns สำหรับใช้ทำเอกสารประกอบการใช้งานจากโค้ดที่เราเขียน รายละเอียดเกี่ยวกับแต่ละแท๊กจะอธิบายไว้ในบทความถัดไป
หลังจากที่เราได้ประกาศชื่อและโครงสร้างของคลาสแล้ว ถัดมาเราก็จะมากำหนดการดำเนินการ (Method) ต่างๆของคลาสดังนี้
/**
Get the reference to the user data attached to this object.
@returns {Object} the reference to the user data
*/
JsgeObject.prototype.getData = function() {
return this.data;
};
/**
Get the x position of this object.
@returns {Number} the x position
*/
JsgeObject.prototype.getX = function() {
return this.x;
};
/**
Get the y position of this object.
@returns {Number} the y position
*/
JsgeObject.prototype.getY = function() {
return this.y;
};
/**
Set the data associate to this object.
@param {Object} the data.
*/
JsgeObject.prototype.setData = function(data) {
this.data = data;
};
/**
Move the object to new x and y positions.
@param {Number} x the x position of the object.
@param {Number} y the y position of the object.
*/
JsgeObject.prototype.move = function(x, y) {
this.x = x;
this.y = y;
};
เราจะเห็นว่าแต่ละ Method มีคอมเมนต์อธิบายการทำงานและพารามิเตอร์ (Parameter) ที่ต้องส่งผ่าน Method ว่ามีอะไรบ้าง Method ของคลาส JsgeObject ทำงานไม่ซับซ้อนแค่คืนค่า Property และกำหนดตำแหน่ง x และ y เท่านั้น
หลังจากที่เราได้โค้ดของคลาส JsgeObject แล้ว เราก็จะมาทดสอบการทำงานโค้ดที่เราเขียนกัน เราเรียกการทดสอบย่อยๆนี้ว่า Unit Test วิธีที่ง่ายที่สุดในการทดสอบก็คือ เขียนโปรแกรมขึ้นมาใหม่อีกตัวเพื่อทดสอบโค้ดของเรา ซึ่งโปรแกรมนี้จะทดสอบแต่ละกรณีการใช้งานที่เป็นไปได้ของโค้ด การทดสอบแต่ละกรณีเราเรียกว่า Test Case เพื่อง่ายต่อการทดสอบ เราจะเริ่มด้วย Test Case เดียวก่อน โดยจะทดสอบ Method ทั้งหมดของคลาส JsgeObject
การทดสอบเราอาจจะเขียนโค้ดโดยใช้ if-statement ตรวจสอบค่าที่ได้หลังจากเรียกแต่ละ Method หรือ ที่นิยมปฎิบัติกันก็คือ ใช้ Library สำหรับทำ Unit Test
ในบทความนี้เราก็ได้เรียนรู้วิธีเขียนคลาสใน JavaScript แล้ว ในบทความถัดไปเราจะมาต่อในเรื่องการทดสอบคลาสที่เราเขียนกัน