function Resource(){
var id = '';
this.getId = function(){
return id;
}
this.setId = function(value){
id = value;
}
}
function Model(){ }
Model.prototype = new Resource();
为了测试上面的代码,我有以下内容:
var m1 = new Model();
m1.setId("blah");
alert("m1 = " + m1.getId());
var m2 = new Model();
m2.setId("blahblah");
alert("m2 = " + m2.getId());
alert("m1 = " + m1.getId());
我希望收到以下警报:m1 = blah, m2 = blahblah, m1 = blah
.
但是,正在显示以下内容:m1 = blah, m2 = blahblah, m1 = blahblah
。
我已经编写了上面的代码作为实验,以便我可以开始理解 JavaScript 中的继承。也许我对应该显示的内容的期望是由于我的 Java/C# 背景。显然,创建的每个新模型对象共享资源中定义的相同id
变量。为什么是这样?
我怎样才能写这个,以便每个新模型都可以拥有自己的独特id
性(除了显而易见的 - 在模型中定义)?
顺便说一句,我故意将 id 定义为var id
而不是this.id
,因为我正在寻找私有变量行为。