关于最后.click(1111,data);
为什么该查这样就不能用了呢 $("button:eq(2)").click(1111, data(e))
为什么该查这样就不能用了呢 $("button:eq(2)").click(1111, data(e))
2016-10-05
js中作为值的函数的调用格式是这样的:
function callSomeFunction(someFunction, someArgument){
return someFunction(someArgument);
}
上面这段代码,是小白在书上看到的。
在这里callSomeFunction这个函数接收两个参数,一个是someFunction,一个是someArgument 。someArgument也是作为someFunction的函数。
不过我们要注意someFunction没有加( );
没有加括号表示是函数名,是变量,是一个引用。函数名后面加了括号之后就是调用。
这个细微之处可以看出,js中规定,把一个函数作为另外一个函数的参数调用时,其实传递的是函数的引用。如果给写成了这样someFunction( )就不是引用了,而是调用。
( ╯□╰ )小白也是挺蒙的,既然函数有返回值,为什么不能把函数的调用看作是返回值。然后把返回值的传递看作是值传递,这应该与硬件的内部机制有关。
$("button:eq(2)").click(1111, data(e))和$("button:eq(2)").click(1111, data)的区别在于:
data(e)这样是函数的调用。data是函数的引用。
举报