美文网首页
(0,eval)('this')

(0,eval)('this')

作者: 心淡然如水 | 来源:发表于2019-07-17 15:21 被阅读0次

    经常看到有人用(1,eval)('this')的形式来获取当前的上下文对象,今天来分析一下此函数的功能及意义。

    首先,先贴出一段常出现的代码

    varglobal = (function(){returnthis|| (0,eval)('this');}())

    在上段代码中,是为了获到当前上下文对象。

    我们可以先将上面的代码进行一下拆分:

    vargetCtx =function(){returnthis|| (0,eval)('this');}varglobal = (getCtx());

    下面再对getCtx进行一下折分:

    vargetCtx =function(){if(this){returnthis;    }else{return(0,eval)('this');    }}

    在这里的(0,eval)返回的是eval函数,在这里为什么要用(0,eval),当然,正常情况(非IE)下,可以直接使用eval(),但是在部分低版本的ie中,不可以直接运行eval,所以可以使用 (0,eval);

    希望对小伙伴们有帮助。有什么异义,也请提出,以进行正确的修改。

    作者:筱桀

    链接:https://www.jianshu.com/p/205a4033010a

    来源:简书

    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:(0,eval)('this')

          本文链接:https://www.haomeiwen.com/subject/zonqlctx.html