2014-01-10 2 views
0

Возможно, этот заголовок этого вопроса дублируется, но я не могу найти Google то, что мне нужно. Для экзамена У меня есть файл JS, созданный ранее, в этом файле я определил функциюКак продлить существующую функцию в javascript

function fun1() 
{ 
    alert("a"); 
} 

Так я называю эту функцию в некоторых «нажмите» триггер

$("button").click(function(e){ 
    fun1(); 
}) 

Теперь я добавил новый модуль и Я не хочу, чтобы изменить определения функции 1, я хочу, чтобы расширить функции 1 как этот

function fun1ex() 
{ 
    alert("b"); 
} 

это означает, что, когда «кнопка» нажата, 2 предупреждения Boxs будет показано («а») и ("b") Могу ли я использовать класс и прототип? Но я не могу представить, как это сделать. Благодаря

+0

Просто позвоните 'fun1()' внутри 'fun1ex()'? Или вы можете вызвать обе функции вызова? Держите его простым, перестаньте пытаться усложнить его классом и прототипом. –

+0

благодарю за ваш комментарий, но функция button.click была определена в первом файле js. – tungcan

ответ

1

Просто присоедините новую функцию к событию Click:

$("button").click(function(e){ 
    fun1(); 
}); 

$("button").click(function(e){ 
    fun1ex(); 
}); 

Это будет alert("a") и alert("b")

+0

Большое спасибо за ваше решение, это очень хорошо, но fun1() вызвал много времени и со многими действиями в первом проекте, я не могу переписать их все во втором. – tungcan

1

Я думаю, что мы можем сделать что-то подобное

function mytest(text) { 
       this.text = text; 
       this.fun1 = function() { 
        alert("a "+text); 
       } 
       this.fun2 = function() { 
        alert("b "+text); 
       } 
       this.fun3 = function(){ 
        for(var i in this) { 
         //executeFunctionByName("mytest."+i, window) 
         //eval("mytest."+i); 
         if(typeof this[i] === "function" && i != "fun3") { 
          this[i](); 
         } 
          //alert(typeof this[i]); 
        } 

       } 
      } 

      mytest.prototype.fun4 = function() { 
       alert("c " + this.text); 
      } 

      var test1 = new mytest("tung"); 
      test1.fun3(); 

в этом экзамене Я определил fun3 для выполнения всех методов, доступных в объекте test1 (кроме fun3) в другом проекте (или js-файл) Я могу создать новую функцию protopye для расширения fun3.

mytest.prototype.fun4 = function() { 
        alert("c " + this.text); 
       } 

Может быть, многие знают об этом, но я надеюсь, что это полезно для всех новичков, подобных мне. Thanks

Смежные вопросы