当我浏览 jQuery 源代码时,我遇到了这一行:
jQuery(this)[ state ? "show" : "hide" ]();
相比之下有什么优势吗
state ? jQuery(this).show() : jQuery(this).hide();
?
独立示例:
var object = {
foo: function() {
alert('foo');
},
bar: function() {
alert('bar');
}
};
object[true ? 'foo' : 'bar']();
object[false ? 'foo' : 'bar']();
性能上没有什么优势。但是代码长度有优势(如果你认为它是一个优势),并且 DRY 原则(不要重复代码)特别是如果你的函数中有很多参数。
考虑以下:
obj[ cond ? "foo" : "bar" ]("param1", "param2", "param3");
Versus:
cond ? obj.foo("param1", "param2", "param3") : obj.bar("param1", "param2", "param3");
正如您所看到的,您以第二种方式重复了“很多”代码
希望这可以帮助。干杯
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)