我想知道是否可以替换 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/