下面的代码实现了javascript中类属性与实例属性:
function myObject() {
var instance_data = 100;
this.getInstanceData = function() {
return instance_data;
}
this.setInstanceData = function(v) {
instance_data = v;
}
}
// 使用一个匿名函数去修改构造器的原型 myObject.prototype, 以访问该匿名函数中的upvalue
void function() {
var class_data = 10;
this.getClassData = function() {
return class_data;
}
this.setClassData = function(v) {
class_data = v;
}
}.call(myObject.prototype);
// 创建对象
//
var obj1 = new myObject();
var obj2 = new myObject();
obj1.setInstanceData(10);
alert(obj2.getInstanceData()); // 输出100
obj1.setClassData(200);
alert(obj2.getClassData()); // 输出200 、