2013-01-10 155 views
0

可能重复:
Javascript: Do I need to put this.var for every variable in an object?为什么我必须使用this.canvas?

我跑进用下面的代码有问题:

var BuildMiniMap = function(camera, mapSize, width){ 

    this.camera = camera; 
    this.canvas = document.getElementById('gameCanvas'); 
    this.mapSize = mapSize; 
    this.width = width; 
    this.height = Math.floor(mapSize[1]/(mapSize[0]/width)); 

    alert(canvas); 
} 

var miniMap = new BuildMiniMap(camera, [800, 600], 200); 

在网页中运行它会导致控制台的错误:

Uncaught ReferenceError: canvas is not defined 

而我必须改用this.canvas。这只发生在canvas财产,但没有任何其他财产。有谁知道原因并可以提供解释?谢谢!

+2

'但没有任何其他property'尝试'height' – Musa

+0

是啊,我发现了这件事...对不起我的愚蠢 –

回答

1

其他三个属性camera,mapSizewidth都被定义为函数参数,所以在函数范围内可用。 canvas不是函数参数,也没有在函数内部定义,所以它不在范围内。

1

您需要的变量和属性来区分。只有三个[本地] 变量在你的构造函数,即参数cameramapSizewidth

canvasheight等都是性能的情况下,您可以通过使用this keyword分配一些值的

相关问题