基本的var误解

时间:2014-02-26 11:23:52

标签: javascript

我创造了这个:

var where = function(){
  sym.getSymbol("Man").getPosition()
}
console.log(where);

if (where()<=0){
  var playMan = sym.getSymbol("Man").play();
} else {
  var playMan = sym.getSymbol("Man").playReverse();
}

这适用于Edge Animate因此所有的syms。我正在尝试访问符号Man的时间轴,然后如果它是0则播放它。但它不起作用,我认为原因是我对var的工作方式有不完全的理解。在我看来,我给变量'where'代表'Man'的时间轴位置的值。实际上控制台只是告诉我我有一个功能,而不是答案的价值。我之前遇到过这种情况,并且觉得如果我能破解它,我将会是一个更好的人类。

所以,如果有人能用婴儿语言解释我的误解,我将不胜感激。

由于

S

3 个答案:

答案 0 :(得分:0)

尝试

var where = function()
{
    return sym.getSymbol("Man").getPosition();
};

您的代码没有返回任何内容。

答案 1 :(得分:0)

 var where = function() {
      return sym.getSymbol("Man").getPosition()
    }
    console.log(where);

    if(where()<=0) {
      var playMan = sym.getSymbol("Man").play();
    } else {
      var playMan = sym.getSymbol("Man").playReverse();
    }

答案 2 :(得分:0)

var where = function () { ... };

function where() { ... }

在这里基本上是同义词。所以,where是一个函数。你在这里调用这个函数:

if (where()<=0)

但是,该功能不会return。您需要return来自它的值,而不仅仅是在其中调用sym.getSymbol("Man").getPosition()

那,或者不要使它成为一个功能:

var where = sym.getSymbol("Man").getPosition();
if (where <= 0) ...

在这种情况下,只会检查并分配一次,而不是每次拨打where()时都更新。