1

如果我有这样的功能:

 function showAlert() {
   alert("1");
 }

有没有办法将附加功能绑定到页面不同部分的相同功能?

像这样:

 function showAlert() {
   alert("1");
   alert("2");
 }
4

3 回答 3

4

您可以使用调用旧函数的新函数覆盖该函数。

 function showAlert() {
   alert("1");
 }

showAlert = (function (original){
 return function () {
   original();
   alert("2");
 }
}(showAlert));

showAlert();

​
于 2012-07-09T12:31:24.940 回答
0

好吧,您可以简单地重新定义函数:

function showAlert() {
    alert("1");
}

var originalShowAlert = showAlert;

showAlert = function(){
    originalShowAlert();
    alert("2");
}

showAlert();
于 2012-07-09T12:32:13.790 回答
0

由于函数在 JS 中被简单地视为对象,因此您可以维护一个函数数组,然后在循环中执行每个函数。这允许您将任何类型的函数添加到集合中(如果您保留索引,甚至可以在以后删除它们),而不会中断执行序列。

var funk = [];

funk.push(function showAlert1()
{
    alert("1");
});

funk.push(function showAlert2()
{

    alert("2");
});


funk.push(function showAlertFromMsg()
{
    alert("You passed " + this);

});


for(var i=0,len=funk.length; i<len; i++) funk[i].call("This is my message");
于 2012-07-09T12:42:37.923 回答