2

我对 JavaScript 很陌生。我想开发一个在黑莓上运行的画布动画。为此,我想使用 HTML5 和 JavaScript。我想创建以下功能:

  • 功能drawCircle()。圆的中心将是画布的中心(画布的大小将是窗口的大小),半径将由用户输入。到这里,我应该在哪里声明画布以分配圆心?

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

  • 功能init()。它将以一组间隔绘制形状。

我应该在哪里声明这些?:

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

1 回答 1

4

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

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

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

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

test();
console.log(testVariable);

编辑:

正如评论正确指出的那样:

很少需要全局变量和函数。使用全局变量可能会导致 javascript 源文件之间的命名冲突并导致代码中断。出于这个原因,将功能封装在单个全局命名空间中是一种很好的做法……最简单的方法是创建单个全局对象并将属性和方法分配给该对象。

创建命名空间:

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

这是对命名空间的描述。

于 2011-04-14T12:06:11.743 回答