首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript代码片段解释

javascript代码片段解释
EN

Stack Overflow用户
提问于 2013-10-08 20:05:27
回答 1查看 304关注 0票数 2
代码语言:javascript
复制
fnTest = /xyz/.test(function () {
        xyz;
    }) ? /\bparent\b/ : /.*/;

我不明白这个javascript代码片段是如何工作的。有人能解释一下这个代码片段的逻辑吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-08 20:11:42

浏览器并不总是对函数使用相同的toString()实现。有些浏览器会以字符串的形式从函数中返回代码,而其他浏览器则不会。

该表达式的第一部分确定浏览器是否在toString()中使用该函数的代码,因为只有在对该函数调用toString()的结果中找到字符串xyz时,/xyz/.test(function () { xyz; })才会给出true

表达式的其余部分是三元的,将导致/\bparent\b//.*/,因此整个表达式可以概括如下:“如果浏览器在toString()中使用函数的代码,则将fnTest设置为Regexp /\bparent\b/,否则将fnTest设置为/.*/

如果要使用函数执行某些操作,则可以使用此方法,但您知道,只需要对包含名为parent的变量的函数执行此操作。在受支持的浏览器上,您可以使用fnTest.test(some_function)查看some_function是否包含parent,对于由于toString()实现fnTest.test(some_function)而无法做出此决定的浏览器,fnTest.test(some_function)总是返回true,因为/.*/将匹配所有字符串。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19257278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档