js 方法的动态调用 apply的用法

js动态调用方法

js动态调用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//回调函数1   
  function  callback(a,b,c)   
{   
   alert(a+b+c);   
}   
//回调函数2   
function  callback2(a,b)   
{   
   alert(a+b);   
}   
//这个方法做了一些操作、然后调用回调函数   
function  doCallback(fn,args)   
{   
     fn.apply(this, args); 
}   
     
function  test()   
{   
         
     //动态调用方法、并传递参数   
   doCallback(callback2,[ 'a' , 'b' ]);   
   doCallback(callback,[ 'a' , 'b' , 'c' ]);   
}

 

注意一点的就是上面 callback2 之类的不能是字符串的哦.

亲如果你想根据字符串来实现动态调用怎么办呢?

请看下面代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//回调函数1   
  function callback(a,b,c)   
{   
   alert(a+b+c);   
}   
//回调函数2   
function callback2(a,b)   
{   
   alert(a+b);   
}   
//这个方法做了一些操作、然后调用回调函数   
function doCallback(fn,args)   
{   
     fn.apply(this, args); 
}   
     
function test()   
{   
         
     //动态调用方法、并传递参数   
   doCallback(eval("callback2"),['a','b']);   
   doCallback(callback,['a','b','c']);   
}

使用 eval("callback2")就好了哦, 亲 是不是很简单~

你可能感兴趣的:(js 方法的动态调用 apply的用法)