在javascript中使用正则表达式进行函数反编译优于toString方法

在javascript中使用正则表达式进行函数反编译优于toString方法,javascript,string,function,Javascript,String,Function,John Resig在他的示例中使用了函数反编译技术。他的正则表达式技术也被用于jQuery库,同样的技术在opera博客上受到批评。有人写道: 这不是一个好主意,因为反编译功能是ES-262规范的一个可选功能。对于某些低端平台,反编译速度慢,需要太多资源,因此任何Opera Mobile版本都不支持反编译功能 我非常了解Function.prototype.toString方法,也知道不同浏览器供应商的不同实现。所以我的问题是: 是否可以在当前状态下执行跨浏览器、可靠的函数反编译? 如果是,我

John Resig在他的示例中使用了函数反编译技术。他的正则表达式技术也被用于jQuery库,同样的技术在opera博客上受到批评。有人写道:

这不是一个好主意,因为反编译功能是ES-262规范的一个可选功能。对于某些低端平台,反编译速度慢,需要太多资源,因此任何Opera Mobile版本都不支持反编译功能

我非常了解Function.prototype.toString方法,也知道不同浏览器供应商的不同实现。所以我的问题是:

是否可以在当前状态下执行跨浏览器、可靠的函数反编译?

如果是,我应该使用上面提到的哪种技术?为什么

我应该使用上面提到的技术中的哪一种

只有一种技术,那就是

如果您使用的是正则表达式及其
test
方法,则参数将通过调用其
toString
方法隐式转换为字符串

我应该使用上面提到的技术中的哪一种

只有一种技术,那就是


如果您使用的是正则表达式及其
test
方法,则参数将通过调用其
toString
方法隐式转换为字符串。

您所说的“在当前状态下”是什么意思?您所说的“在当前状态下”是什么意思?toString似乎是一个简单的解决方案,那么为什么John Resig决定去(IMO)呢硬编码regex的艰难之路。上面我没有提到,但我的想法是使用其中任何一种方法来比较相同的函数(除了空格和制表符外,所有的函数都应该是相同的),toString给出了确切的实现,即使包含空格,那么如果我只在第一个函数中使用空格,在第二个函数中使用空格呢?他们会给同样的叮咬吗测试是否会失败,或者我是否应该用regex?函数修剪整个空白字符和制表符?除了通过引用之外,可以也不应该进行比较。他使用正则表达式是因为他想用正则表达式来测试代码字符串,你还会做什么(“这么简单”)?toString似乎是一个简单的解决方案,所以John Resig决定(依我看)用硬编码正则表达式来艰难地走下去。上面我没有提到,但我的想法是使用其中任何一种方法来比较相同的函数(除了空格和制表符外,所有的函数都应该是相同的),toString给出了确切的实现,即使包含空格,那么如果我只在第一个函数中使用空格,在第二个函数中使用空格呢?他们会给同样的叮咬吗测试是否会失败,或者我是否应该用regex?函数修剪整个空白字符和制表符?除了通过引用之外,可以也不应该进行比较。他使用正则表达式是因为他想用正则表达式测试代码字符串,你还会做什么(“这么简单”)?