JavaScript在一行上定义并返回变量

时间:2013-10-02 19:43:58

标签: javascript

在JavaScript中,如果我想返回一个变量但又不想修改它或将其泄漏到全局范围内,我可以在一行中定义并返回它吗?

return var Foo = 'bar'

但是,我认为我在任何地方都看不到这一点,我更常见的是:

var Foo = 'bar'
return Foo

第一个没那么多余,但这是不好的做法吗?

3 个答案:

答案 0 :(得分:3)

好吧,你肯定需要在你想要的范围内声明变量。然后你可以设置这个值,并将它返回到一行:

var Foo; // Declares Foo in this scope, though this expression has no L-Value
return (Foo = 'bar'); // Sets Foo to 'bar' and returns the value of Foo

但是为什么你这样做是有问题的。理想情况下,Foo将在某个父范围内的其他位置声明。或者,您将返回一个新函数,该函数将包含 Foo的值。

答案 1 :(得分:3)

我无法理解你为什么要这样做,因为一旦return超出范围

只做

return 'bar';

答案 2 :(得分:3)

在不理解你想要做什么的情况下提供有用的答案有点困难,但是这个:

return var Foo = 'bar'

是无效的JavaScript,所以你当然不能这样做。

我同意你的第二个例子是多余的 - 如果你在返回它时只是引用它,那么在函数中声明一个变量就没有意义了。删除冗余的方法是不要声明变量:

function exampleFunction() {
    return 'bar';
}