有没有办法使用赋值函数的变量名,例如,获取元素的实际宽度?
var xvar = function(){ return $('#y').width()}
并将其用作
console.log(xvar);
而不是
console.log(xvar());
答案 0 :(得分:12)
不是变量,但可以使用对象的属性。它被称为吸气剂。
var obj = {
get xvar() { return $('#y').width(); }
};
然后你可以使用:
obj.xvar; // will run the above function
(从理论上讲,使用变量getter的一种方法是当对象的属性反映变量时。例如,window
对象。)
答案 1 :(得分:2)
只要您的函数返回String
或Number
,这可能是非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()
版本。