-1

Max/MSP のプログラミング環境で Javascript を使用しています。興味があれば、Max での実装の基本的な概要を次に示します。そこには特に異常はありません。いくつかのカスタム関数/メソッドが利用可能です。

したがって、ここでの用語については完全にはわかりません。私はこれを持っています:var velData = MultiDimensionalArray(8, 16)以下の関数で参照されているグローバルに宣言されています。

グローバル変数ですか?関数を呼んでいるので、MultiDimensionalArray、それvelDataは関数式になりますか?いずれにせよ、関数の外部から変数にアクセスできません。

function list(y) {
    if (inlet == 1) {

        y = arrayfromargs(messagename,arguments);

        for (var i = 0; i < y.length; i++ ) {
            velData[row][i] = y;
        }   
    }

}

post(velData[0][0]);
post();

post()console.log と同等であり、関数内にあり、関数外にないpost(velData[0][0]) 場合に機能します。velDataグローバルに宣言されているので、関数の外でアクセスできるはずだと思ったのですが、できません。

これがJsfiddleのコードです- http://jsfiddle.net/estevancarlos/WHc5j/

提案?

4

1 に答える 1

3

「だから私はここでの私の用語を完全には確信していません.私はこれを持っています.var velData = MultiDimensionalArray(8, 16)グローバルに宣言されており、以下の関数で参照されています.それはグローバル変数ですか?」

変数は、velData他の関数内にない場合にのみグローバルに宣言されます。


「関数を呼んでいるからMultiDimensionalArray、それでvelData関数式になるの?

いいえ、関数式は関数の呼び出しとは関係ありません。これは、関数が作成される方法に関係しています。これは、質問とは関係のない狭い問題を除いて、呼び出しに影響を与えません。


「いずれにせよ、関数内のループの外から変数にアクセスできません:

次に、変数はグローバルではないか、ループの実行後に作成/初期化されています。


"post()と同等でconsole.logありpost(velData[0][0])、関数の外側ではなく関数の内側にある場合に機能します。"

次に、それが機能するように配置されている関数は、初期化された後に呼び出されているように見えvelDataますが、関数内にない場合は、すぐに呼び出され、velData初期化されます。


velData「グローバルに宣言されているので、関数の外でアクセスできるはずだと思っていましたが、できません。提案はありますか?」

実際にグローバルである場合、タイミングの問題のように聞こえます。どこでいつその値を取得するかを追跡し、それが発生する前にvelData他のコードが使用しようとしないことを確認する必要があります。velData

于 2014-05-19T02:56:38.697 に答える