6

我想知道从http://www.google.com的来源进入 javascript 文件实际上我经常这样做,并试图了解他们在那里做了什么。今天我想知道里面的文件,发现了一些奇怪的函数调用。也许这是一件愚蠢的事情,但我真的不知道它是什么,所以我无法通过搜索来帮助它。

代码的可读性相似-

var someFunction = function(somaeParamenter){
    //do some stuffs;
    return something;
}

var someOtherThing = (0, someFunction)(oneParameter);

请原谅我缺乏知识。

编辑:

来源-

我正在使用铬。在http://www.google.com页面打开时,我打开了开发者工具。然后我打开源选项卡并https://www.google.com.bd/xjs/_/js/s/c,sb,cr,cdos,vm,tbui,mb,wobnm,cfm,abd,bihu,kp,lu,m,tnv,amcl,erh,hv,lc,ob,r,rsn,sf,sfa,shb,srl,tbpr,hsm,j,p,pcc,csi/rt=j/ver=WUW4ydIf-wI.en_US./am=gA/d=1/sv=1/rs=AItRSTPu52CumknQsh0was81vrM4inla_w在查看器中打开文件。这个文件是我在那里看到的唯一 js 文件。我启用了“漂亮的打印”,在第 58 行你会找到定义-

_.Va = function(a) {
            var b = typeof a;
            if ("object" == b)
                if (a) {
                    if (a instanceof window.Array)
                        return "array";
                    if (a instanceof window.Object)
                        return b;
                    var c = window.Object.prototype.toString.call(a);
                    if ("[object Window]" == c)
                        return "object";
                    if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("splice"))
                        return "array";
                    if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call"))
                        return "function"
                } else
                    return "null";
            else if ("function" == b && "undefined" == typeof a.call)
                return "object";
            return b
        };

在第 83 行,你会看到函数被调用。

_.Za = function(a) {
            return "array" == (0, _.Va)(a)
        };
4

1 回答 1

7
(0, someFunction)

简单地返回someFunction

所以这相当于

var someOtherThing = someFunction(oneParameter);

你确定你是按原样输入的吗?如果是这样,并且如果不是某种混淆,那么它可能是某种缩小的不幸结果。例如,如果实际代码稍有不同,(0, someObject.someFunction)则可能会使用此间接函数调用

编辑 :

您编辑确认它的目标可能是确保this在函数内部是全局对象(window在浏览器中)而不是Va附加的对象(_)。

于 2013-05-04T16:21:24.627 回答