Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在运行函数之前定义变量值_Javascript_Arrays_Function_Undefined - Fatal编程技术网

Javascript 在运行函数之前定义变量值

Javascript 在运行函数之前定义变量值,javascript,arrays,function,undefined,Javascript,Arrays,Function,Undefined,我有一个数组(在本例中是多维数组,doors),其中wait和point未定义 var wait; var point; var doors = [ [wait, doorWrap, 'regY', point, 10, 'bounceOut', 150, 5, 'bounceIn'] // ,[etc.] ]; 我想循环doors数组,对于每次迭代,执行key()函数,将doors条目作为参数 multiKey(doors, 500, 600); function multiKey

我有一个数组(在本例中是多维数组,
doors
),其中
wait
point
未定义

var wait;
var point;
var doors = [
    [wait, doorWrap, 'regY', point, 10, 'bounceOut', 150, 5, 'bounceIn']
// ,[etc.]
];
我想循环
doors
数组,对于每次迭代,执行
key()
函数,将
doors
条目作为参数

multiKey(doors, 500, 600);

function multiKey (keys, point, wait) {
    for (var i = 0; i < keys.length; i++) {
            wait *= i;
            key.apply(this, keys[i]);
    }
}
多钥匙(门,500600);
功能多键(键、点、等待){
对于(变量i=0;i
在将
500
600
传递到
multiKey()
函数之后,我希望
point
wait
会在
key()
函数运行之前被定义,但是见鬼,
point
wait
结果是
未定义的

怎么了?我怎样才能着手解决这个问题呢


标题也很抱歉。我希望这个问题足够清楚,因为我很难用语言表达我的问题!谢谢。

等待
已声明但未定义


我看不到对
等待
的操作已声明但未定义


我看不到对

的操作
多键()中的
等待
数组中的
等待
是不同的值

可以将要传递的值分配给循环中的每个数组

var doors = [
// --v--wait            --v--point
    [0, doorWrap, 'regY', 0, 10, 'bounceOut', 150, 5, 'bounceIn']
// ,[etc.]
];

multiKey(doors, 500, 600);

function multiKey (keys, point, wait) {
    for (var i = 0; i < keys.length; i++) {
            keys[i][0] = wait * i;
            keys[i][3] = point
            key.apply(this, keys[i]);
    }
}
var门=[
//--v--等等--v--点
[0,门套,'regY',0,10,'bounceOut',150,5,'bounceIn']
//,[等]
];
多钥匙(门,500600);
功能多键(键、点、等待){
对于(变量i=0;i
JavaScript没有指针,它的原语类型总是在赋值时被复制。因此,当在
wait
point
中包含
时,您正在将
undefined
复制到
doors
数组中


然后,当您将初始值传递给
多键
函数时,它们被分配给
等待
参数,这两个参数完全不同。然后将
wait
参数乘以
i
,但这与数组中的值完全不同,因此仍然只是从数组中传递
未定义的

多键()中的
wait
doors
数组中的签名和等待是不同的值

可以将要传递的值分配给循环中的每个数组

var doors = [
// --v--wait            --v--point
    [0, doorWrap, 'regY', 0, 10, 'bounceOut', 150, 5, 'bounceIn']
// ,[etc.]
];

multiKey(doors, 500, 600);

function multiKey (keys, point, wait) {
    for (var i = 0; i < keys.length; i++) {
            keys[i][0] = wait * i;
            keys[i][3] = point
            key.apply(this, keys[i]);
    }
}
var门=[
//--v--等等--v--点
[0,门套,'regY',0,10,'bounceOut',150,5,'bounceIn']
//,[等]
];
多钥匙(门,500600);
功能多键(键、点、等待){
对于(变量i=0;i
JavaScript没有指针,它的原语类型总是在赋值时被复制。因此,当在
wait
point
中包含
时,您正在将
undefined
复制到
doors
数组中


然后,当您将初始值传递给
多键
函数时,它们被分配给
等待
参数,这两个参数完全不同。然后将
wait
参数乘以
i
,但这与数组中的值完全不同,因此仍然只是从数组中传递
undefined

您没有在任何地方定义
函数。这可能就是它未定义的原因。。。这是你说的唯一真正的问题。不清楚您在这里要做什么。@很抱歉,我省略了
key()
函数,因为我认为它与此无关。但是它在我的代码中。您的
multiKey()
签名中的
wait
doors
数组中的
wait
是不同的值。您唯一声明的问题是
key
未定义的
,您认为其中包含的如何定义
key
是不相关的吗?你的代码是什么?它到底出了什么问题?@AlexWayne:我想他是说
等待
函数中是
未定义的。似乎有一种假设,所有
wait
标识符将自动解析到同一个内存。您没有在任何地方定义
函数。这可能就是它未定义的原因。。。这是你说的唯一真正的问题。不清楚您在这里要做什么。@很抱歉,我省略了
key()
函数,因为我认为它与此无关。但是它在我的代码中。您的
multiKey()
签名中的
wait
doors
数组中的
wait
是不同的值。您唯一声明的问题是
key
未定义的
,您认为其中包含的如何定义
key
是不相关的吗?你的代码是什么?它到底出了什么问题?@AlexWayne:我想他是说
等待
函数中是
未定义的。似乎有一种假设,所有
wait
标识符将自动解析到相同的内存。我分别将
500
600
作为
wait
作为
多键
函数的参数传递。
console.log
确实返回
500