我在Max/MSP的編程環境中使用Javascript。如果你感興趣,這裏有一個basic overview它在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/
建議?
帶上調試器並遍歷代碼中的每一行? – zerkms
JavaScript被設計爲「託管」(因爲它是「最大」),因此提供了很大的自由度來使得語言在特定行爲所以我們(我們這些不熟悉Max嵌入的人)不能說出當你說velData是「全局聲明的」時發生了什麼事情。這是什麼意思,在上下文中?你能提供更多的細節嗎? –
請在代碼中聲明變量並分配調用表達式MultiDimensionalArray(8,16)'的結果。另外,在哪裏調用list()? – Bergi