Javascript 如何动态更改js代码? 如何在运行时替换JS函数的代码?与C++函数指针相同的功能
我尝试过eval,但当其中一个参数包含13或10之类的字节值时,它会抛出一个错误 我从中了解到eval实际上是在评估每个词汇原子,并用它们的内容替换它们 以下是一些示例文件,以说明我正在寻找的功能: 文件1:index.html 文件2:dynamic_code.php 文件3:some_File.txt 浏览器返回的错误:Javascript 如何动态更改js代码? 如何在运行时替换JS函数的代码?与C++函数指针相同的功能,javascript,ajax,dynamic-function,Javascript,Ajax,Dynamic Function,我尝试过eval,但当其中一个参数包含13或10之类的字节值时,它会抛出一个错误 我从中了解到eval实际上是在评估每个词汇原子,并用它们的内容替换它们 以下是一些示例文件,以说明我正在寻找的功能: 文件1:index.html 文件2:dynamic_code.php 文件3:some_File.txt 浏览器返回的错误: 这不是与C++函数指针相同的功能:-< /P> 这是一样的: function someFunc() { } function otherFunc(f) { f(
这不是与C++函数指针相同的功能:-< /P> 这是一样的:
function someFunc() {
}
function otherFunc(f) {
f();
}
otherFunc(someFunc);
而且它是有效的:Javascript具有一流的功能。其中C++用函数指针仿真。
在C++中,您要做的是:
void someFunc(f) {
eval(f); // doesn't exist of course
}
someFunc("void otherFunc() {}");
既然真相已经确定,让我们回到你的问题上来
你要找的东西叫做。这是一种在浏览器中注入脚本标记的技术。当注入脚本时,将执行其中的javascript代码。之所以使用它的主要原因是因为它可以跨域工作,因此不需要XHR。但是您也可以将其用于您的用例。dynamic_code.php服务是否正确?在评估之前,尝试通过console.log或alert输出动态_代码的内容。我想你正在使它变得比应该的更复杂。不应该有这样的情况来替换JS函数的代码,只需在JS函数中调用某个变量的特定值,只需传递该变量作为响应,您所需的部件将被激活
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 ()
function someFunc() {
}
function otherFunc(f) {
f();
}
otherFunc(someFunc);
void someFunc(f) {
eval(f); // doesn't exist of course
}
someFunc("void otherFunc() {}");