首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行函数之前定义变量值

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

Stack Overflow用户
提问于 2013-06-28 07:54:16
回答 2查看 72关注 0票数 1

我有一个数组数组(可以说是多维数组,本例中为doors ),其中waitpoint未定义。

代码语言:javascript
复制
var wait;
var point;
var doors = [
    [wait, doorWrap, 'regY', point, 10, 'bounceOut', 150, 5, 'bounceIn']
// ,[etc.]
];

我希望循环doors数组,并在每次迭代中执行key()函数,并将doors条目作为参数。

代码语言:javascript
复制
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传递给multiKey()函数后,我本以为pointwait会在key()函数运行之前定义--但是,pointwait原来是undefined

怎么啦?我该如何着手解决这个问题呢?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-28 08:07:09

multiKey()签名中的waitdoors数组中的wait是不同的值。

您可以将传递给循环中的每个Array的值赋给它们。

代码语言:javascript
复制
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]);
    }
}

JavaScript没有指针,它的基本类型在赋值时总是被复制的。因此,当您在doors数组中包含waitpoint时,就是将undefiend复制到这些数组中。

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

票数 1
EN

Stack Overflow用户

发布于 2013-06-28 08:03:41

已声明pointwait,但未定义。

我在point上看不到任何操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17355127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档