这段代码有什么作用?

时间:2011-02-15 04:10:20

标签: javascript regex

fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/;

2 个答案:

答案 0 :(得分:5)

它根据JS引擎是否在Function.prototype.toString()中包含函数的源代码来选择正则表达式。

正则表达式用于检查函数是否使用_super类方法;如果知道该函数不使用_super,则包装器不需要创建super
如果Function.prototype.toString()没有返回源,则强制包装器假定该函数始终使用_super;因此,/.*/,总是匹配。

答案 1 :(得分:0)

使用_super方法进行测试的高度模糊测试方法至少可以说。

请注意,第二个“始终通过”案例/.*/的一个微不足道的改进是删除贪婪的正则表达式匹配*,以便只匹配第一个字符。新的正则表达式将是:/.?/