Javascript:使用函数作为变量

时间:2012-06-06 14:09:33

标签: javascript variables

有没有办法使用赋值函数的变量名,例如,获取元素的实际宽度?

var xvar = function(){ return $('#y').width()}

并将其用作

console.log(xvar);

而不是

console.log(xvar());

3 个答案:

答案 0 :(得分:12)

不是变量,但可以使用对象的属性。它被称为吸气剂。

var obj = {
  get xvar() { return $('#y').width(); }
};

然后你可以使用:

obj.xvar;  // will run the above function

(从理论上讲,使用变量getter的一种方法是当对象的属性反映变量时。例如,window对象。)

答案 1 :(得分:2)

只要您的函数返回StringNumber,这可能是非ES5环境的替代方案:

var xvar = new function(id){ 
              this.toString = 
              this.valueOf = function(){
                   return $(id).width()};
           }('#y');

答案 2 :(得分:0)

如果我没有弄错它会起作用,因为xvar将存储对立即调用函数的结果的引用:

var xvar = (function() { return $('#y').width(); })();
console.log(xvar);

但在此之后你无法使用xvar()版本。