data: (0, u.transfer)((0, o.decode)(s.body.data.index[y], h), h)
几个括号连起来是怎么理解的?也想不到什么关键字搜。。。
平常用 py,完全看不懂这几个括号。。。
for (var v = 0,m = l.keywordslist.length; v < m; v++) {
var g = void 0,
y = l.keywordslist[v];
d.indexOf(y) >= 0 ? g = {
query: y,
disable: !0
}: s.body.data.index[y] ? g = {
data: (0, u.transfer)((0, o.decode)(s.body.data.index[y], h), h),
query: y,
disable: !1
}: g = {
query: y,
disable: !0,
badcase: !0
},
p.push(g)
1
secondwtq 2017-07-29 08:36:16 +08:00
相当于 u.transfer(o.decode(s.body.data.index[y], h), h)
另外这代码谁写的,抽时间请他吃个饭,记得下毒 |
2
plqws 2017-07-29 08:38:18 +08:00
我写了这么久 js 都没看出来是想要做什么,(x, y) 这种写法从来没见过。。。
(0, u.transfer) 得到的是 u.transfer,应该是个 function 后面的 o.decode 也是个 function 化简后其实就是 ```javascript u.transfer(o.decode(s.body.data.index[y], h), h) ``` 但是楼主代码里为何这么写的意义我是不太懂 |
3
zjsxwc 2017-07-29 08:43:25 +08:00
看变量名,应该是生成的代码。
|
4
secondwtq 2017-07-29 08:43:51 +08:00
仔细看了一下这风格应该是 minify 过的,这样的话目的应该是调用 u.transfer 和 o.decode 两个函数但是不设置其为 this context
|
5
skadi 2017-07-29 08:54:32 +08:00
卧槽这头像,杰哥?
|
6
ceoimon 2017-07-29 09:21:23 +08:00 via iPhone 2
(1, obj.function) 可以把方法函数转换成普通函数( this 指向 global, 严格模式下为 undefined)。本质上是获取 obj.function 的“值”, 和 var f = obj.function 效果类似。主要应用场景是压缩代码。
|
7
ceoimon 2017-07-29 10:02:36 +08:00
@ceoimon #6
好像 Global eval 也用得比较多 See: http://perfectionkills.com/global-eval-what-are-the-options/#indirect_eval_call_theory |
8
SourceMan 2017-07-29 10:58:00 +08:00 via iPhone
压缩之后的,并不是源码
|
9
Nbsaw 2017-07-29 15:09:29 +08:00
这个三元也很骚
|
10
weakish 2017-07-29 16:23:24 +08:00
·exp1 ? exp2 : exp3`,然后 exp 里面可以嵌套。
> 平常用 py,完全看不懂这几个括号 Python 里面一样有 exp2 if exp1 then exp3,同样可以写得很晦涩。 |
11
autoxbc 2017-07-29 23:52:55 +08:00
希望大家都不压缩代码,与人方便自己方便
|
12
cagechan 2017-07-30 09:42:25 +08:00
这应该是用了特定的工具对源码进行了压缩和混淆...
|