我有一个我正在尝试制作的简单 Javascript 类,它一直很好,直到我遇到一个看起来不应该发生的问题。我有以下课程:
function circle(paper) {
var x = null;
var y = null;
var r = null;
var x1 = null;
var y1 = null;
var R = 0;
this.G = 0;
this.B = 0;
this.lineSize = 1;
this.paper = paper;
var that = this;
this.set = function(x,y,r){
that.x = x;
that.y = y;
that.r = r;
}
this.colorOut = function(){
console.log("R: "+that.R+" G: "+this.G+" B: "+this.B);
}
}
现在,无论我做什么,R 都变得不确定,但是如果我这样做var R = null;
并且在集合中我that.R = 0;
突然这样做,它就被定义了。然而,从我在crockford的网站上发现的许多 SO 帖子链接到这些问题,似乎他正在做我正在做的事情并且它正在工作。如以下代码所示:
function Container(param) {
function dec() {
if (secret > 0) {
secret -= 1;
return true;
} else {
return false;
}
}
this.member = param;
var secret = 3;
var that = this;
this.service = function () {
return dec() ? that.member : null;
};
}
那么,这里有什么我不理解或误解的地方吗?我对 JS 中的类如何工作是新手,我更习惯于 Java/C++ 类。无论如何,如果您需要更多信息,请询问!谢谢很多!