在文档内声明局部变量,或者在不同作用域的函数内声明局部变量

declaring local variables inside document ready or inside function in different scope

本文关键字:局部变量 声明 作用域 函数 文档 或者      更新时间:2023-09-26

我需要知道哪一种声明局部变量的方法更好。哪一个在练习和表现方面更好?因为,在函数内声明的局部变量一旦执行就会被删除,在各种函数内声明尽可能多的局部变量(例如: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当然更好

这完全取决于你需要什么,真的。

你会在多个实例上重用你的函数吗?如果在所有可能的情况下都提供ab,那么getItem内部的代码将正确处理这些值,这是真的吗?如果是这样,那么传递值将是一个很好的选择,因为您可以自由地传递您想要传递的任何内容。如果ab只是常数,永远不会改变,那么保持值不变也是一个好主意。

第二个选择提供了很大的灵活性,你可以随时改变值,这使得代码更"通用"answers"可重用"——前提是你要使用相同的过程。

性能方面,它们有一点不同。第一个选项分配了更多的内存,因为您必须实例化ab两次。