JS通过函数名调用函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS通过函数名调用函数相关的知识,希望对你有一定的参考价值。
有三个函数
function f1()alert('f1')
function f2()alert('f2')
function f3()alert('f3')
还有一个方法
function execute(functionName) //注:这里functionName传入的是字符串
//。。。
那么通过调用execute('f1');来实现对方法f1的调用。
JS函数调用的四种方法
1:方法调用模式
/*方法调用模式*/var myobject=
value:0,
inc:function()
alert(this.value)
myobject.inc()
请注意this此时指向myobject
2:函数调用模式
/*函数调用模式*/var add=function(a,b)
alert(this)//this被绑顶到window
return a+b;
var sum=add(3,4);
alert(sum)
请注意this此时指向window
3:构造器调用模式
/*构造器调用模式 摒弃*/var quo=function(string)
this.status=string;
quo.prototype.get_status=function()
return this.status;
var qq=new quo("aaa");
alert(qq.get_status());
javascript语言精粹一书建议摒弃这种方式
4:apply调用模式
/*apply*///注意使用了上面的sum函数
//与myobject
//这中调用方式的优点在于可以指向this指向的对象。
//apply的第一个参数就是this指针要指向的对象
var arr=[10,20];
var sum=add.apply(myobject,arr);
alert(sum);
看这个apply真正应用。bind这是一个绑定时间的函数
var bind=function(object,type,fn)if(object.attachEvent)//IE浏览器
object.attachEvent("on"+type,(function()
return function(event)
window.event.cancelBubble=true;//停止时间冒泡
object.attachEvent=[fn.apply(object)];
//在IE里用attachEvent添加一个时间绑定以后。
//this的指向不是到object对象本身所以。我们绑定的function里的this.id是无法正常工作的。
//但是如果我们用fn.apply(object)
//这里可以看出我们是把apply的第一个对象也就是this的指向变更给了object所以this.id就变成了
//object.id 可以正常工作了。
)(object),false);
else if(object.addEventListener)//其他浏览器
object.addEventListener(type,function(event)
event.stopPropagation();//停止时间冒泡
fn.apply(this)
);
bind(document.getElementById("aaa"),"click",function()alert(this.id));
方法调用模式
函数调用模式
构造器调用模式
1:方法调用模式。
/*方法调用模式*/
var myobject=
value:0,
inc:function()
alert(this.value)
myobject.inc()
2:函数调用模式
/*函数调用模式*/
var add=function(a,b)
alert(this)//this被绑顶到window
return a+b;
var sum=add(3,4);
alert(sum)
3:构造器调用模式
var quo=function(string)
this.status=string;
quo.prototype.get_status=function()
return this.status;
var qq=new quo("aaa");
alert(qq.get_status());
4:apply调用模式
/*apply*/
var arr=[10,20];
var sum=add.apply(myobject,arr);
alert(sum); 参考技术B eval(functionName+'()');本回答被提问者采纳
关于js中函数的调用问题
js中函数的调用方法
1、直接调用
函数名(参数);
2、通过指向函数的变量去调用
例如:
var myval = 函数名;
此刻 myval是指向函数的一个指针;
myval(实际参数);此刻调用的就是myval指向的那个函数;
关于js中函数返回值的获取
var myval = 函数名();
此刻myval 的值则是函数的返回值,若函数没有有返回值,则myval则被赋予undefine。
以上是关于JS通过函数名调用函数的主要内容,如果未能解决你的问题,请参考以下文章