JavaScript 定义 class 的一种解决方案
这是由荷兰程序员 Gabor de Mooij 提出的一种比较简单的方法。Gabor de Mooij 称之为 minimalist approach。现摘录如下:
定义一个 Foo 类
var Foo = {
createNew: function(){
var instance = {};
instance.description = "A new class instance";
instance.bar = function() { console.log(instance.description)};
return instance;
}
}
创建一个 Foo 实例
var foo = Foo.createNew();
foo.bar();
类的继承
var NewFoo = {
createNew = function(){
var instance = Foo.createNew();
instance.title = "A new title";
instance.newBar = function(){
alert(instance.description);
};
}
}
私有方法和属性
var Foo = {
createNew: function(){
var instance = {};
instance.description = "A new class instance"; //description 是私有的,只有通过 bar() 来访问
instance.bar = function() { console.log(instance.description)};
return instance;
}
}
静态成员变量
var Foo = {
id: 101010; // id 在多个实例间共享
createNew: function(){
var instance = {};
instance.description = "A new class instance"; //description 是私有的,只有通过 bar() 来访问
instance.bar = function() { console.log(instance.description)};
return instance;
}
}
var foo1 = Foo.createNew();
var foo2 = Foo.createNew();
foo2.id = 233333;
console.log("Foo id:"+foo1.id);