有没有办法使用分配了函数的变量名,例如,获取元素的实际宽度?
var xvar = function(){ return $('#y').width()}
并将其用作
console.log(xvar);
代替
console.log(xvar());
有没有办法使用分配了函数的变量名,例如,获取元素的实际宽度?
var xvar = function(){ return $('#y').width()}
并将其用作
console.log(xvar);
代替
console.log(xvar());
不是变量,但对象的属性是可能的。它被称为吸气剂。
var obj = {
get xvar() { return $('#y').width(); }
};
然后你可以使用:
obj.xvar; // will run the above function
(理论上,使用变量 getter 的一种方法是当对象的属性反映变量时。例如,window
对象。)
只要您的函数返回String
或者Number
这可能是非 ES5 环境的替代方案:
var xvar = new function(id){
this.toString =
this.valueOf = function(){
return $(id).width()};
}('#y');
如果我没有弄错,它将起作用,因为xvar
将存储对立即调用函数结果的引用:
var xvar = (function() { return $('#y').width(); })();
console.log(xvar);
但是在它之后你不能使用xvar()
版本。