JS中关于函数调用的问题

在js中,可以直接调用函数,也可以将函数名赋值给变量进行调用,他们的方式有所不同。

  1. 直接调用
    直接调用比较简单,如
function output(message){
    window.alert(message);
}
output("hello ,world");

这就属于直接调用显示是:hello world
这里写图片描述

2 赋值调用

    var a=output; 
    a("hello,world");

这相当于a是一个指针,指向了函数output(message);要注意参数。
输出是:hello,world
这里写图片描述
但是需要注意的是,如果直接输出变量名,则会得到函数体的输出。

window.alert(a);//或者直接输出变量名window.alert(output);

这里写图片描述
在这里还有一个有趣的事情,如果是这样:

    var a=output; 
    window.alert(a("hello,world"));

那么就会出现先是一个窗口弹出 hello world

这里写图片描述

确定以后又有一个窗口出来是:undefined

这里写图片描述

这说明首先是a调用了函数output,第一个窗口是函数中的alert弹出来的,然后是window.alert(a(“hello,world”));执行,结果是undefined,说明这种方法不正确,这也在某种程度上说明了JS是解释性的脚本语言。


 3. 返回值调用
 对于有返回值的函数来说,可以用这种办法:

var b=("abc");
window.alert(b);

“`
这样的话会将返回值赋给变量b,输出是:abc
这里写图片描述
如果函数没有返回值,就会输出 undefined。

在应用过程中,最好还是使用直接调用比较符合习惯,更少出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值