Javascript 如何动态更改js代码? 如何在运行时替换JS函数的代码?与C++函数指针相同的功能

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(

我尝试过eval,但当其中一个参数包含13或10之类的字节值时,它会抛出一个错误

我从中了解到eval实际上是在评估每个词汇原子,并用它们的内容替换它们

以下是一些示例文件,以说明我正在寻找的功能:

文件1:index.html

文件2:dynamic_code.php

文件3:some_File.txt

浏览器返回的错误:


这不是与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() {}");