我想知道在某些特定的方法下隐藏什么来执行某些代码。
我有三种不同的方法可以做,但我真的不知道哪种情况更好,为什么。
我只是在大多数情况下选择Case 2
方法来获得语法偏好,但我越来越想知道每种方法的优点和缺点。
案例1:
var response = Func();
//Handle response...
案例2:
Func(response){
//Handle response...
};
案例3:
Func({
case_x: function(opt){
//Handle an example case...
}
});
感谢您的解释我非常好奇!
答案 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。