可以将附加功能绑定到功能吗?

时间:2012-07-09 12:27:39

标签: javascript jquery

如果我有这样的功能:

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

有没有办法将其他功能绑定到页面不同部分的同一个功能?

像这样:

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

3 个答案:

答案 0 :(得分:4)

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

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

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

showAlert();

​

答案 1 :(得分:0)

好吧,你可以简单地重新定义这个功能:

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

var originalShowAlert = showAlert;

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

showAlert();

答案 2 :(得分: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");