我刚刚开始使用Javascript,我不确定我是否已经为对象类型声明声明了这些正确。有没有更好的方法和更可读的方式在Javascript中将变量声明为一个类,或者这是最简单的方法。
blueObject只是我读过的空对象。这是在Javascript中创建简单对象类型的唯一方法,还是有更好更易读的方式?
代码:
var blueObject={}; //Creates and object
var redObject={}; //Creates and object
blueObject.x=0;
blueObject.y=200;
blueObject.dx=2;
blueObject.width=48;
blueObject.height=48;
blueObject.image=new Image();
blueObject.image.src="blueplus.png";
context.drawImage(blueObject.image, 0, 0);
blueObject.blueImageData=context.getImageData(0, 0, blueObject.width,
blueObject.height);
context.clearRect(0,0,theCanvas.width, theCanvas.height);
redObject.x=348;
redObject.y=200;
redObject.dx=-2;
redObject.width=48;
redObject.height=48;
redObject.image=new Image();
redObject.image.src="redcircle.png";
答案 0 :(得分:4)
对于您的目的,这可能是最干净的方式。
var blueObject = {
x: 0,
y: 200,
dx: 2,
width: 48,
height: 48,
image: new Image()
};
var redObject = {
x: 348,
y: 200,
dx: -2,
width: 48,
height: 48,
image: new Image();
};
blueObject.image.src = "blueplus.png";
redObject.image.src = "redCircle.png";
context.drawImage(blueObject.image, 0, 0);
blueObject.blueImageData = context.getImageData(0, 0, blueObject.width,
blueObject.height);
context.clearRect(0, 0, theCanvas.width, theCanvas.height);
另请参阅this answer了解更多正式创建JavaScript对象的方法。
答案 1 :(得分:0)
您可以像这样创建一个类颜色:
ColorClass = function(aX, aY, ..., aSrc){
this.x = aX;
this.y = aY;
...
this.image = new Image();
this.image.src = aSrc;
}
然后你可以像这样实现你的两个对象:
var blueObject = new ColorClass(0, 200, 2, ..., "blueplus.png"),
redObject = new ColorClass(348, 200, ..., "redcircle.png");
答案 2 :(得分:0)
我喜欢显示模块模式,允许您拥有私有范围。你正在做的是合法的,但是你正在从外面修改这个对象,这通常是一种不好的做法。
var myClass = function(a, b){ // constructor
var a = a;
var b = b;
var c = a + b;
return { // public signature
c: c
}
}();