JS通过函数名调用函数
有三个函数functionf1(){alert('f1')}functionf2(){alert('f2')}functionf3(){alert('f3')}还有一个方...
有三个函数
function f1(){alert('f1')}
function f2(){alert('f2')}
function f3(){alert('f3')}
还有一个方法
function execute(functionName){ //注:这里functionName传入的是字符串
//。。。
}
那么通过调用execute('f1');来实现对方法f1的调用。 展开
function f1(){alert('f1')}
function f2(){alert('f2')}
function f3(){alert('f3')}
还有一个方法
function execute(functionName){ //注:这里functionName传入的是字符串
//。。。
}
那么通过调用execute('f1');来实现对方法f1的调用。 展开
3个回答
推荐于2017-10-13 · 知道合伙人软件行家
关注
展开全部
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)});
2015-06-16 · 知道合伙人互联网行家
关注
展开全部
调用方式:
方法调用模式
函数调用模式
构造器调用模式
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);
方法调用模式
函数调用模式
构造器调用模式
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
eval(functionName+'()');
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询