在 JavaScript 中,如果我想返回一个变量但不想修改它或将其泄漏到全局范围内,我可以像这样在一行上定义并返回它吗?
return var Foo = 'bar'
但是,我认为我在任何地方都没有看到这个,我更常见的是:
var Foo = 'bar'
return Foo
第一个有点多余,但这是不好的做法吗?
在 JavaScript 中,如果我想返回一个变量但不想修改它或将其泄漏到全局范围内,我可以像这样在一行上定义并返回它吗?
return var Foo = 'bar'
但是,我认为我在任何地方都没有看到这个,我更常见的是:
var Foo = 'bar'
return Foo
第一个有点多余,但这是不好的做法吗?
好吧,你肯定需要在你想要的范围内声明变量。然后你可以设置值,并在一行中返回它:
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 值的新函数。
我不明白你为什么要这样做,因为一旦你return
超出了范围。
做就是了
return 'bar';
在不了解您要做什么的情况下提供有用的答案有点困难,但是:
return var Foo = 'bar'
不是有效的 JavaScript,所以你当然不能那样做。
我同意您的第二个示例是多余的-如果您只在返回时引用它,那么在函数中声明变量是没有意义的。消除冗余的方法是根本不声明变量:
function exampleFunction() {
return 'bar';
}