学习javascript 构造函数原型方法属性遇到的问题
先上测试代码,很简单,就是定义一个似有变量,然后通过构造函数方法返回变量,通过原型方法设置变量,代码的结果是undefined undefined 'www'问题来了,为什么调用的b1对象方法,却只有b3的user被设置呢。。。这个想了一会,只有一个解释能说服自己:调用原型方法时在box的原型中找不到user变量,于是查找离方法调用最近的对象,设置里面的user变量可以通过把b1.setuser拿到b2下面做测试。如果有同学有不同见解欢迎交流。
<script>function box(){var user;this.getuser=function(){return user;};box.prototype.setuser=function(value){user=value;};}var b1=new box();var b2=new box();var b3=new box();b1.setuser('www');alert(b1.getuser());alert(b2.getuser());alert(b3.getuser());</script>