JS中函数调用的奇异写法
今天看不到一JS代码很是奇异,很久后才明白它的意思,佩服写这Coder,
$('#tip')[['show','hide'][$.getCookie('tip')]]();
这代码是基于jQuery的,要理解就得知道拆分,$('#tip')是jQuery的选择器,$.getCookie('tip')是使用jQuery的Cookie的插件,返回的是数值0、1,这些都不用多说。
主要看这部分[['show','hide'][1]](),如何拆呢?这也是让我想了一段时间的原因,如果作者这样写相信很多人一下就能明白。
$('#tip')['show']();
这不就是使用数组的方式调用函数嘛!再看中间[['show','hide'][1]],这下就明白了,只不是个数组吧了!
这代码的全意就是将一个jQuery的object的两个属性创建了一个数组,然后由$.getCookie('tip')的值进行选择,再应用jQuery的函数。拆分为一般的写法就像下面这样:
$.getCookie('tip') ? $('#tip').hide() : $('#tip').show();
有点绕,呵呵,但对于熟悉JS的调用很好处!