这里有两段代码:
第一段:
<script>
function firstFun()
{
alert("1");
}function secondFun(func)
{
alert("2");
func();
}secondFun(firstFun);
</script>第二段:
<script>
function firstFun()
{
alert("1");
}function secondFun(func)
{
alert("2");
func;
}secondFun(firstFun());
</script>请教:
为什么第一段代码的警告框先输出2,再输出1?而第二段则相反呢?
第一段:
<script>
function firstFun()
{
alert("1");
}function secondFun(func)
{
alert("2");
func();
}secondFun(firstFun);
</script>第二段:
<script>
function firstFun()
{
alert("1");
}function secondFun(func)
{
alert("2");
func;
}secondFun(firstFun());
</script>请教:
为什么第一段代码的警告框先输出2,再输出1?而第二段则相反呢?
解决方案 »
- ajax通过http形式请求远程数据问题
- 技术求助:body onload和window onload冲突如何解决!
- 数量众多的文本框,如何提交比较方便?
- 怎样点击一个文本框后,文本框里面的内容自动全选?
- [高分]请问javascript如何调用用VC写的dll??
- 如何做到跨页面将内容显示在iframe中啊
- Javascript中能否实现xml与xls转化成html?
- 设计软件和设计网站就是不一样,这样的问题也要考虑到,急救 !!!
- 请教高手!!(急急)通过javascript能够得到html中的页面的链接地址吗?在线苦等
- 小问题帮忙啦
- 这段简单的jQuery代码错在哪??
- 我自定义类想继承Array类,请问apply加new Array()方法怎么不行啊?
secondFun(firstFun()); 是把 firstFun() 调用的返回值作为参数,显然要先调用才行。
secondFun(firstFun); 是把函数句柄作为参数,并传实参时不执行firstFun, 而是通过func()来调用。
如果是ss()就是调用 也就是运行该函数
如果是ss没括号,就是引用该函数 而并不运行,只是把它赋给另外一个变量之类的 比如
var a=ss
那么之后你就可以通过
a()来运行ss()了
第一段先运行secondfunction
重上到下运行是
先运行firstfunction 输出1 之后alert(2)
第二段secondFun(firstFun()) 时其实是先运行firstfunction 之后把运行返回的值传入secondfunction
所以先输出1 之后输出2
第一段先运行secondfunction
重上到下运行是
先alert(2)
之后运行firstfunction 输出1
函数名() : 是调用函数!!
楼主第2段代码,明显的错误。
function secondFun(func)
{
alert("2");
func;
}secondFun(firstFun());secondFun(firstFun()); 把firstFun()的返回值作为secondFun的参数firstFun 没有返回值。所以
function secondFun(func)
{
alert("2");
func;
}
这个 func 始终是 undefined
firstFun()没有return额,只是提示一个警告框,能带入secondFun函数作为参数吗?
这样的话是不是类似于先调用firstFun(),在调用secondFun(),效果一样?
如果firstFun函数有返回值,那么这个就有定义了是吗?