Class-based object-oriented languages, such as Java and C++:
1.class
定义了所有的属性
2.instance
来实现class
A prototype-based language, such as JavaScript
1.只有object
,任何object
可以指定自己的属性,无论是在创建还是运行时
1.任何object
可以以prototype
形式和其他的object
关联,来共享属性
function Employee() {
this.name = '';
this.dept = 'general';
}
public class Employee {
public String name = "";
public String dept = "general";
}
继承
function Manager() {
Employee.call(this);
this.reports = [];
}
Manager.prototype = Object.create(Employee.prototype);
Manager.prototype.constructor = Manager;
function WorkerBee() {
Employee.call(this);
this.projects = [];
}
WorkerBee.prototype = Object.create(Employee.prototype);
WorkerBee.prototype.constructor = WorkerBee;
public class Manager extends Employee {
public Employee[] reports =
new Employee[0];
}
public class WorkerBee extends Employee {
public String[] projects = new String[0];
}
参考:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model