我们应该使用哪种方法来执行和处理一些代码?为什么?

时间:2013-01-10 22:57:48

标签: javascript

我想知道在某些特定的方法下隐藏什么来执行某些代码。

我有三种不同的方法可以做,但我真的不知道哪种情况更好,为什么。 我只是在大多数情况下选择Case 2方法来获得语法偏好,但我越来越想知道每种方法的优点和缺点。

案例1:

var response = Func();
//Handle response...

案例2:

Func(response){
  //Handle response...
};

案例3:

Func({
  case_x: function(opt){
    //Handle an example case...
  }
});

感谢您的解释我非常好奇!

1 个答案:

答案 0 :(得分:0)

假设Func是现有函数:

情况1是您的函数返回值并且您想要存储结果,例如:

function times_ten(num){ return num*10; }
var ten = 10;
var hundred = times_ten(ten);

所以现在你可以使用变量hundred

案例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_string)等函数

如果你传入一个具有类似功能的对象,那么你要求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。