Javascript 我们应该使用哪种方法来执行和处理某些代码?为什么?
我想知道在执行某些代码的特定方法下隐藏了什么 我有三种不同的方法可以做,但我真的不知道哪一种更好,在什么样的情况下,为什么。 大多数情况下,我只是出于句法偏好选择案例2,但我越来越想知道每种方法的优缺点是什么 案例1:Javascript 我们应该使用哪种方法来执行和处理某些代码?为什么?,javascript,Javascript,我想知道在执行某些代码的特定方法下隐藏了什么 我有三种不同的方法可以做,但我真的不知道哪一种更好,在什么样的情况下,为什么。 大多数情况下,我只是出于句法偏好选择案例2,但我越来越想知道每种方法的优缺点是什么 案例1: var response = Func(); //Handle response... 案例2: Func(response){ //Handle response... }; 案例3: Func({ case_x: function(opt){ //Hand
var response = Func();
//Handle response...
案例2:
Func(response){
//Handle response...
};
案例3:
Func({
case_x: function(opt){
//Handle an example case...
}
});
谢谢你的解释,我对此很好奇 假设Func是一个现有函数: 第1种情况是,如果函数返回一个值,并且希望存储结果,例如:
function times_ten(num){ return num*10; }
var ten = 10;
var hundred = times_ten(ten);
因此,从现在起,您可以使用变量100
情况2是如果您没有返回值,或者不需要保存:
function write_times_ten(num){ num = num*10; document.write(num); }
var ten = 10;
var hundred = write_times_ten(ten);
案例3稍微复杂一些
如果您执行var something={a:function(){}
-通过创建这样的对象,您的所有函数都在同一范围内,因此不会污染全局命名空间。这有点像用其他语言创建一个类。jQuery是我能想到的最大的例子,因为它所做的一切都是由对象jQuery
(或调用jQuery.parseJSON(json_字符串)
如果传入一个具有类似函数的对象,则要求Func()
对传入的函数执行某些操作,如下所示:
function do_something_times_ten(options){
options.num = options.num*10;
options.do_something(num);
}
var ten = 10;
do_something_times_ten({num:ten,
do_something:function(num){
num = num*10;
document.write(num);
}
}
);
现在写的是1000,而不是100。这有点宽泛;你能把它写得更具体一些,少列出所有问题吗?我认为这只是归结为编码风格,但我会让其他人解释;-)假设
Func
是一个函数,你的案例#2在语法上是无效的(或者至少做了一件非常不同的事情)谢谢你的回答,但我的问题是关于这些方法的性能,我已经知道如何使用它了。我想知道一个是否更快,如果它们都是异步的,这类事情。不拉入全局名称空间的事实是否有一些重新执行?如果我们不污染全局名称空间,我们在作用域中创建的所有内容都将在执行后被销毁,因此我们的应用程序通过这样做是“更轻”的,对吗?不,如果你这样定义作用域,您只能通过对象访问方法-也就是说,您可以执行jQuery.parseJSON(json_文本),但不能执行parseJSON(json_文本)-以下是一个令人敬畏的解释,解释了为什么污染是不好的,特别是在更大的项目中:就性能而言:由于调用函数和,但是函数之外的新变量不会被垃圾收集。假设案例3和案例2都只有一种方法,那么案例3将比案例2占用更多的内存,但案例3实际上是一个更高级的特殊案例