假设我有以下函数:
现在在运行时,我想更改alertMesg函数的功能以执行其他操作。我的想法是像这样做。
基本上,问题在于我无法控制alertMesg函数中的源代码。我想改变这个函数,但实际上我不能改变它的源代码,因为它是由服务器端生成的。话虽如此,我需要让它表现出不同的行为。
PS:我忘了提到一个重要的部分:我必须保留大部分函数。我不能直接替换函数。我必须将函数的95%保持原样,并更改另外5%。
@Barlow Tucker, quixoto, pekka 谢谢你们的关注。
基本上,我认为代理的想法行不通,因为我不仅仅是添加功能,我还要改变代码的功能。例如,我希望函数的第三行有所不同。在我的真实示例中,我必须在函数的中间添加一行。
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%保持原样,并更改另外5%。
@Barlow Tucker, quixoto, pekka 谢谢你们的关注。
基本上,我认为代理的想法行不通,因为我不仅仅是添加功能,我还要改变代码的功能。例如,我希望函数的第三行有所不同。在我的真实示例中,我必须在函数的中间添加一行。
window.alert()
替换为您的函数)。 - Pekka