2014-03-24 52 views
1

我想創建一個包含一個精靈對象的遊戲對象類。我認爲我誤解了一些根本性的東西。 編輯:精靈類的作品,但gameObj類沒有。如何創建屬性是一個「對象」javascript

function sprite(img) { 
    this.image = img; 
    this.w = img.width; 
    this.h = img.height; 
} 
function gameObj(img, x, y) { 
    var sp = sprite(img); 
    this.x = x; 
    this.y = y; 
} 
var aCircle = new sprite(circle); 
var aGround = new gameObj(ground, 400,700); 
+0

「Sprite類作品,但gameObj類不」 - 定義「作品」,你能指望什麼發生?這與實際發生的事情有何不同? – Quentin

+0

這只是代碼的一部分。後來我用這個方法來繪製它。當我從aCircle調用sprite.draw函數時,它可以工作,但不能從aGround中調用。 gameObj.prototype.draw = function(){ this.sp.draw(this.x,this.y); } – user1020976

+0

您是否看到'var aCircle = new sprite(circle);'和'var sp = sprite(img);'?之間的區別? –

回答

1

要調用函數作爲構造函數,請使用new關鍵字。

var sp = new sprite(img); 

這將使this(該函數內部)是指「新對象」,而不是正常情況下(window,因爲你沒有指定其他方面)。

約定聽寫構造函數的大寫儘管(Sprite)。

1

你缺少new關鍵字在gameObj構造:

var sp = new sprite(img); 
相關問題