javascript - 在不同的范围中,声明局部变量 inside document ready 或者 inside 函数

  显示原文与译文双语对照的内容
0 0

我需要知道哪个是声明局部变量的更好方法。 在实践中,性能是更好的? 因这里,当执行函数时,声明函数的局部变量会立即被删除( 如下所示): a,b 在示例 below ) inside的各种函数比声明一次只有一次 inside document.ready()?

方法1:

<script type="text/javascript">
$(function() {
 getItem1();
 getItem2();
}
function getItem1() {
 var a = 100;
 var b = 1000;
//do something with a,b
 return item1;
}
function getItem2(){
 var a = 100;
 var b = 1000;
//do something with a,b
 return item2;
}
</script>

方法2:

<script>
$(function() {
 var a = 100;
 var b = 1000;
 getItem1(a,b);
 getItem2(a,b);
}
function getItem1(a,b) {
//do something with a,b
 return item1;
}
function getItem2(a,b) {
//do something with a,b
 return item2;
}
</script>
时间:原作者:4个回答

0 0

这都是你所需要的。

你将在多个实例中重用你的函数? 如果所有可能的场景都提供了 ab,那么它会是 true代码 inside getItem 将正确处理这些值? 如果是,那么传递值是一个很好的选择,因为你可以以通过自由的方式传递任何内容。 如果 ab 只是常数,而且永远不会改变,那么有一个值常数将是一个很好的想法。

第二个选择提供了大量的灵活性,可以以随时更改值,这使得代码更加'泛型'和'可以重复使用'。

性能很好,它们会产生一些差异。 因为你需要实例化 ab,所以第一个选项分配更多内存。

原作者:
...