2

私はJavaScriptが初めてです。Blackberry で実行するキャンバス アニメーションを開発したいと考えています。そのために、HTML5 と JavaScript を使用したいと考えています。次の関数を作成したいと思います。

  • 機能drawCircle()。円の中心がキャンバスの中心になり (キャンバスのサイズはウィンドウのサイズになります)、半径はユーザーが入力します。ここまでで、円の中心を割り当てるには、canvas をどこで宣言すればよいでしょうか。

  • 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 に答える