javascript - 循环遍历脚本本身内的单词并更改它

标签 javascript

我想知道是否可以替换 javascript 中某个单词的所有实例。举例来说,我想用 fn 替换“function”的所有实例。我知道这样做会使我的功能毫无用处,但这只是举一个例子。

所以我的麻烦是,1.如何访问脚本本身中的文本?脚本遍历,类似于我们遍历节点树的方式。

2.我认为此类操作会带来安全风险,对吗?

假设您有一个这样的脚本:

var x = function () {

    function y () {
       // ...
    }

}

最佳答案

您可以使用eval来做到这一点

看这个:

myScript = "myFunc = function foo() {console.log(9999)}";
eval(myScript);

现在您可以通过myFunc()运行该函数

这里变得很有趣。

myScript 中的名称 foo 更改为 bar,并将编号更改为 0000

myScript = myScript.replace("foo", "bar");
myScript = myScript.replace("9999", "0000");
eval(myScript);
myFunc();

函数bar执行并打印0000

还有很多其他方法可以做到这一点。例如,您可以使用 JQuery getScript,并且只需一点​​创意就可以在这个方向上走得很远。

<小时/>

更新

进一步说明答案...

我想使用变量myFunc有一个特定的原因

要理解,请运行以下代码段

myScript = "function foo() {console.log(9999)}";
eval(myScript);
myScript = "function bar() {console.log(0000)}";
eval(myScript);

foo();
bar();

现在猜猜我使用myFunc的原因

关于javascript - 循环遍历脚本本身内的单词并更改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33519368/

相关文章:

javascript - 在javascript中调用父构造函数

javascript - 更改 JavaScript Prompt() 显示的格式和文本?

javascript - 无法将 redux-devtools-extension 与 react-router-redux syncHistoryWithStore 一起使用

javascript - 让 Chrome 和 Firefox 显示视口(viewport)

javascript - 使用javascript,我如何计算亚洲字符和英文单词的混合

javascript - 包含重复项函数不会返回 true?

javascript - 使用 JavaScript 在浏览器中打开文件时写入文件

javascript - 如何使用javascript从表td中获取值

javascript - mysql 命令的问题

javascript - Photoshop JS 指定字体