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,因为我正在寻找私有变量行为。