黑马程序员技术交流社区
标题:
JavaScript调用函数
[打印本页]
作者:
徐传任
时间:
2012-10-1 20:50
标题:
JavaScript调用函数
在javaScript中怎么有时调用自己写的函数要加括号,有时不加括号;
关于这个有没什么技巧了?
作者:
许庭洲
时间:
2012-10-4 13:06
1. 不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
2.函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
作者:
秦敖
时间:
2012-10-5 14:13
为楼上补上一个小例子吧。
<script>
function Myfun()
{
alert("this is Myfun");
return "My retrun";
}
function OhMyfun()
{}
Myfun();//执行Myfun函数
ohMyfun=Myfun;//将ohMyfun定义内容赋值给Myfun,ohMyfun和Myfun定义内容相同。
alert(ohMyfun);//将ohMyfun输出发现就是Myfun函数定义内容;
ohMyfun();//执行ohMyfun函数
alert(ohMyfun=Myfun());//执行Myfun函数,并将返回值赋值给ohMyfun
alert(ohMyfun);//ohMyfun的内容变成了"My retrun"
</script>
通过上述小例子我们等到如下结果:1.函数的函数名可以当作一个变量使用,函数名中存储了函数定义的字符串。
比如alert(alert),alert(Myfun)等显示的都是函数定义的字符串。
2.函数名加括号就会执行该函数。Myfun()就会执行Myfun函数。
作者:
秦敖
时间:
2012-10-5 14:13
同时我对“不加括号的,都是把函数名称作为函数的指针”有疑问。
<script>
function Myfun()
{
alert("this is Myfun");
}
function Myfun1()
{
alert("oh Baby Baby!");
}
function ohMyfun()
{}
ohMyfun=Myfun;
alert(ohMyfun);
Myfun=Myfun1;
alert(ohMyfun);
//ohMyfun的内容不会随Myfun的改变而改变
</script>
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2