เรื่องของ class
เนื่องจากใน javascript มันไม่มี keyword class ให้เห็นเลย ทุกอย่างเป็น function เพราะฉะนั้น javascript จะใช้วิธีทำ function constructor เอา เมื่อลองเขียนกับ java ที่มันเป็น class-base ต้องขึ้น class ก่อนเลยจะได้ประมาณนี้
javascript | javascript (compile from coffeescript) | java |
---|---|---|
function Employee() {
this.name = "";
this.dept = "general";
}
|
var Employee;
Employee = (function() {
function Employee() {
this.name = "";
this.dept = "general";
}
return Employee;
})();
|
class Employee {
private String name;
private String dept;
public Employee() {
this.name = "";
this.dept = "general";
}
}
|
เนื่องจากว่า javascript เป็น dynamic typing มันเลยไม่ต้องกำหนด type ก่อนและมันไม่มีเรื่องของการเข้าถึง (access modifier) เลยไม่ต้องกำหนดเหมือน java ส่วนการสร้าง instance นั้นก็จะทำได้เหมือนกับ java เลยโดยการใช้ keyword "new" และที่น่าสนใจอีกเรื่อง ซึ่งอาจารย์ชาญวิทย์ แก้วกสิ (@chanwit) เป็นคนแนะนำมาโดยการใช้ coffeescript compile ให้ได้ javascript ก็ทำให้รู้ว่าเราสามารถเขียน javascript แล้ว new object ได้หน้าตาเหมือนกันก็ได้
source coffeescript:
source coffeescript:
class Employee constructor: -> @name = "" @dept = "general"
การ inheritance และ subclass
javascript | java |
---|---|
function WorkerBee(name, dept, projects) {
this.base = Employee;
this.base(name, dept);
this.projects = projects || [];
}
WorkerBee.prototype = new Employee;
|
class WorkerBee extends Employee {
private String[] projects;
public WorkerBee(String name, String dept,
String[] projects) {
super(name, dept);
this.projects = projects;
}
}
|
No comments :
Post a Comment