<html>
<head>
<meta charset="GBK" />
<script type="text/javascript">
function rank(){
var x =20;
var y=2;
}
rank.prototype.paint = {
px: function(){alert('x: '+this.x);},//访问rank的x
py: function(){alert('y: '+this.y);}//访问rank的y
};
var r = new rank();
r.paint.px(); //可以访问,但 this.x= undefined
//this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象/它表明了当前运行该函数的对象。
</script>
</head>
<body >
</body>
</html>
问题:r.paint.px()如何才能访问到rank的x,(当然定义为rank.x = 20,用rank.x是可以访问的,还有没有别的方法呢)
上面是构造器函数访问
下面又变成了方法访问
你px里的this=>paint而不是=>rank
<head>
<meta charset="GBK" />
</head>
<body >
<script type="text/javascript">
function rank(){
this.x = 20;
this.y = 2;
}
rank.prototype = {
paint : function(){
var self = this;
return{
px: function(){alert('x: '+self.x);},//访问rank的x
py: function(){alert('y: '+self.y);}//访问rank的y
}
}
}
var r = new rank()
,o = r.paint();
o.px(); //可以访问,但 this.x= undefined
//this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象/它表明了当前运行该函数的对象。
</script>
</body>
</html>