在文档就绪内部声明局部变量或在不同范围内声明内部函数

时间:2015-08-13 06:46:13

标签: javascript jquery

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

2 个答案:

答案 0 :(得分:0)

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

您是否会在多个实例上重用您的功能?如果在所有可能的情况下都提供ab,那么getItem中的代码是否会正确处理这些值?如果是这样,那么传递值将是一个很好的选择,因为你有自由意志传递你想要的任何东西。如果ab只是常量并且永远不会改变,那么将值保持为常量也是一个好主意。

第二种选择提供了很大的灵活性,您可以随时更改值,这样可以使代码更具通用性[&#39;和&#39;可重复使用的&#39; - 如果您要使用相同的流程。

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

答案 1 :(得分:0)

我真的知道为什么我使用这些函数以及我的目的是什么因为它可能会有所不同,在方法1中你声明函数内部的变量,一旦函数出现,这些变量将被保存在内存中执行完毕后它们将被删除,所以如果函数包含太多变量和太多代码行,那么如果你寻找性能就不是一个好主意,所以最好使用方法2,但如果你的函数是容易执行方法1的代码行很简单,当然更好