在文档内声明局部变量,或者在不同作用域的函数内声明局部变量
declaring local variables inside document ready or inside function in different scope
我需要知道哪一种声明局部变量的方法更好。哪一个在练习和表现方面更好?因为,在函数内声明的局部变量一旦执行就会被删除,在各种函数内声明尽可能多的局部变量(例如:a,b在下面的例子中)与在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>
这真的是我为什么要使用这些函数的一个想法,我的目的是什么,因为它可能会有所不同,在方法1中,你在函数中声明变量,这些变量将在函数执行时保存在内存中,当函数执行完成时它们将被删除,因此,如果函数包含太多变量和太多代码行,那么如果你想要提高性能,那么最好使用方法2,但如果你的函数很简单,代码行很少,易于执行,那么方法1当然更好
这完全取决于你需要什么,真的。
你会在多个实例上重用你的函数吗?如果在所有可能的情况下都提供a
和b
,那么getItem
内部的代码将正确处理这些值,这是真的吗?如果是这样,那么传递值将是一个很好的选择,因为您可以自由地传递您想要传递的任何内容。如果a
和b
只是常数,永远不会改变,那么保持值不变也是一个好主意。
第二个选择提供了很大的灵活性,你可以随时改变值,这使得代码更"通用"answers"可重用"——前提是你要使用相同的过程。
性能方面,它们有一点不同。第一个选项分配了更多的内存,因为您必须实例化a
和b
两次。
相关文章:
- 使用同一对象中的其他变量声明变量
- Javascript用函数return替换局部变量
- 如何将变量声明为全局变量
- 每次调用函数时,都要修改Javascript中的局部变量
- 局部变量在闭包中丢失
- 试图将一个局部变量传递给我的ngAside控制器
- jQuery.ajax()访问javascript循环中的beforeEnd局部变量
- 如何将变量声明为全局变量?用case foreach?Javascript
- 理解bootstrap.js变量声明
- 如何使用局部变量创建全局变量
- 局部变量的声明
- 多个局部变量声明与一个全局变量声明
- 为什么JavaScript在实际调用函数之前声明局部变量
- 当声明同名的局部变量时,函数变为未定义
- 声明局部变量
- 在文档内声明局部变量,或者在不同作用域的函数内声明局部变量
- 在声明范围之外使用局部变量;为什么会这样呢?
- 如何声明局部变量全局
- 在JavaScript中,当一个局部变量被提升时,它甚至在声明之前就已经在作用域中了吗
- 在JavaScript中声明或不声明局部变量