美文网首页
(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')

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

  • Vue eslint 报错 eval can be harmfu

    let a = eval('v_' + arr1[0]) 报错 eval can be harmful 解决办法:

  • (1, eval)('this') eval('this')

    (1, eval)('this') eval('this') 两者有什么不同 (1,eval)和普通的eval函...

  • eval作用域

    输出 原因: (1,eval)是个表达式,;类似1&&eval,属于间接引用了eval; eval 只在被直接调用...

  • 【php4fun】Challenge 2

    0x01 题目 0x02 解题 这道题的目标是运行phpinfo()函数,看一下eval函数里的语句,发现如果单纯...

  • JS之eval()

    Javascript 之 eval() 语法 eval(string) 描述 eval()是一个顶级函数并且跟任何...

  • PHP代码执行

    Eval函数介绍 Eval函数的语法如下: eval ( string $code ) $code是字符串型变量,...

  • R|Rmarkown查漏补缺

    1. 代码块设置 核心函数:eval eval = TRUE,显示运行结果,默认值 eval = FALSE,不显...

  • python内置关键字

    eval eval(expression, globals=None, locals=None) --- 官方文...

  • python内置函数

    eval() eval(expression, globals=None, locals=None) expres...

网友评论

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

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