gpt4 book ai didi

javascript - 如何动态更改 JavaScript 函数的一行?

转载 作者:数据小太阳 更新时间:2023-10-29 05:53:28 25 4
gpt4 key购买 nike

假设我有以下功能:

function alertMesg()
{
alert("This ok function alerts message!");
}

现在,在运行时,我想更改 alertMesg 函数来执行其他操作。我的想法是做这样的事情。

var temp = window.alertMesg.toString.replace("ok","great")
temp = temp.replace('function alertMesg()',"");
window.alertMesg = new Function(temp);

基本上,问题是我无法控制 alertMesg 函数中的源。我想更改功能,但实际上我无法更改它的来源,因为它是在服务器端生成的。话虽如此,我需要它以不同的方式行事。

PS:忘了说一个重要的部分:我要保留大部分功能。我不能直接替换掉这个功能。我必须保持 95% 的功能不变,并更改其他百分之五。

@Barlow Tucker, quixoto, pekka感谢您的关注。

基本上,我认为代理的想法行不通,因为我不仅仅是在添加功能,我还在更改代码的功能。例如,我希望函数的第三行有所不同。在我的真实示例中,我必须在函数中间添加一行。

最佳答案

如果您必须替换一个函数的内容,有可能:

function alertMesg()
{
alert ("This ok function alerts my message!");
}

alertMesg(); // alerts "This ok function alerts my message!"

// do whatever you want to the function here
var temp = alertMesg.toString();
temp = temp.replace('my', 'your');

// now replace the original function
alertMesg=new Function(temp.substring(temp.indexOf('{')+1,temp.lastIndexOf('}')));

alertMesg(); // alerts "This ok function alerts your message!"

这可能不是实现您想要实现的目标的最佳方式,但除非您提供更多详细信息,否则我真的无法提出任何其他建议。

关于javascript - 如何动态更改 JavaScript 函数的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3472370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com