使用函数return作为JavaScript变量

时间:2014-02-02 23:29:45

标签: javascript

我得到了这个js行:

var functest = function(){
    if (this.href === "undefined") { 
        return window.location 
    } else { 
        return this.href 
    }
};

基本上我希望这个if函数返回变量necesarry并将其赋值给functest。

这显然不起作用,并以某种方式将函数作为字符串返回。我该怎么做?

3 个答案:

答案 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 === undefinedtypeof 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 }
})();