我得到了这个js行:
var functest = function(){
if (this.href === "undefined") {
return window.location
} else {
return this.href
}
};
基本上我希望这个if
函数返回变量necesarry并将其赋值给functest。
这显然不起作用,并以某种方式将函数作为字符串返回。我该怎么做?
答案 0 :(得分:3)
如果要将函数分配给可在需要时调用的变量,然后又要将返回值赋给变量:
var functest = function(){if (this.href === "undefined") { return window.location } else { return this.href } };
var funcVal = functest();
答案 1 :(得分:2)
您需要执行该函数以指定其返回值:
var functest = (function () {
if (this.href === 'undefined') {
return window.location;
} else {
return this.href;
}
}());//note the extra parenthesis to call the function
这个特殊功能可能更好地写成单行三元分配:
var functest = this.href === 'undefined' ? window.location : this.href;
此外,您可能想检查this.href === undefined
或typeof this.href === 'undefined'
:
var functest = typeof this.href === 'undefined' ? window.location : this.href;
答案 2 :(得分:1)
你可以用这样的自动执行功能来做到这一点:
var functest = (function () {
if (this.href === "undefined") { return window.location } else { return this.href }
})();