我刚刚发现,当您在 javascript 函数上调用 toString() 时,如 myFunction.toString()
中,会返回该函数的源代码。
如果您在 Firebug 或 Chrome 控制台中尝试它,它甚至会为您很好地格式化它,即使是最小化的 javascript 文件。
我不知道混淆文件的作用。
这样的 toString 实现有什么用?
最佳答案
它对调试有一定的用处,因为它可以让您查看函数的代码。您可以检查函数是否已被覆盖,以及变量是否指向正确的函数。
它有一些用于混淆 javascript 代码的用途。如果你想在 javascript 中进行硬核混淆,你可以将你的整个代码转换成一堆特殊字符,并且不留下任何数字或字母。这种技术在很大程度上依赖于能够通过使用 +""
示例:(![]+"")[+[]]
是 f
,因为 (![]+"")
求值为字符串 "false"
而 [+[]]
求值为 [0]
,因此你得到 "false"[ 0]
提取第一个字母 f
。
v
等某些字母只能通过调用 toString 等 native 函数(如 [].sort
)来访问。字母 v
对于混淆代码很重要,因为它可以让您调用 eval
,这样您就可以执行任何操作,甚至循环,而无需使用任何字母。 Here is an example of this .
关于javascript - 在 javascript 函数上调用 toString 返回源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5327668/