如何在运行时替换 JS 函数的代码?(与 C++ 函数指针的功能相同)
我试过eval()
了,但是当其中一个参数包含像 13 或 10 这样的字节值时,它会引发错误。
我从中了解到 eval 实际上是在评估每个词汇原子并用它们的内容替换它们。
这些是一些示例文件来说明我正在寻找的功能:
文件 1:index.html
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","dynamic_code.php",false);
xmlhttp.send();
var dynamic_code=xmlhttp.responseText;
function dynamic_function (){
eval(dynamic_code)
}
dynamic_function ()
文件 2:dynamic_code.php
some_file=new XMLHttpRequest();
some_file.open("GET","some_file.txt",false);
some_file.send();
var some_file_content=some_file.responseText;
alert(some_file_content);
文件 3:some_file.txt
line1
line2
line3
浏览器返回的错误:
> Uncaught exception: SyntaxError: at line 2, column 0: expected
> expression, got '<' Error thrown at line 12, column 4 in
> dynamic_function() in http://my_ip/dummy/index.html:
> eval(dynamic_code) called from line 15, column 0 in http://my_ip/dummy/index.html:
> dynamic_function ()