在哪里初始化将由JavaScript中的许多函数访问的全局变量

时间:2011-04-14 12:01:56

标签: html5 javascript-events javascript

我是JavaScript的新手。我想开发一个在Blackberry上运行的画布动画。为此,我想使用HTML5和JavaScript。我想创建以下功能。 __ function drawCircle()。圆的中心将是画布的中心(画布的大小将是窗口的大小),半径将由用户输入。到此为止,我应该在哪里声明画布以分配圆圈的中心?

__ function draw()将绘制形状的所有函数。然后将在init函数中调用。

__ function init()。这将以一组间隔绘制形状。

我应该在哪里声明:

  • var canvas = document.getElementById()
  • var context = canvas.getContext()
  • canvas.width = windows.innerWidh

1 个答案:

答案 0 :(得分:3)

可以从代码的其余部分访问全局范围中定义的任何javascript变量(即不在函数或类中)。

var testVariable = "test";
function test() {
    console.log(testVariable);        
}
test();

或者(并且它被认为是不好的做法)在全局范围之外声明没有var修饰符的变量会将其置于全局范围内:

function test() {
    testVariable = "test";
}

test();
console.log(testVariable);

修改

正如评论正确指出:

  

全局变量和函数是   很少需要。使用全局变量可能   导致命名冲突   javascript源文件和原因代码   打破。因此,它是一个   封装的好习惯   单个全局内的功能   namespace ...最简单的方法是创建一个   单个全局对象和分配   该对象的属性和方法。

创建命名空间:

var MyLib = {}; // global Object cointainer
MyLib.value = 1;
MyLib.increment = function() { MyLib.value++; }
MyLib.show = function() { alert(MyLib.value); }

MyLib.value=6;
MyLib.increment();
MyLib.show(); // alerts 7

以下是what a namespace is的说明。