对不起,如果标题不清楚,但我不知道正确的术语,所以基本上这之间的区别是什么:
doSomething(servletPath,
function () {
checkErrors();
}, function () {
init();
}, function () {
showErrorMsj();
}
);
:
doSomething(servletPath, checkErrors, init, showErrorMsj);
两者似乎在我维护的旧遗留项目上工作相同,但我想知道是否一个比另一个更受欢迎,以及为什么。
唯一的区别是在参数和this
上下文中。如果函数不接受任何参数,或者doSomething
不传递任何参数,则代码等效。
假设checkErrors
接受了参数,doSomething
调用了带参数的函数,那么
function () {
checkErrors();
},
不是
checkErrors,
将导致调用checkErrors
时不带参数,而不带doSomething
传递的参数。
同样,
function () {
checkErrors();
},
将在没有调用上下文的情况下调用checkErrors
(其中的this
将是全局对象或undefined
)。但是如果你这样做
checkErrors,
则doSomething
将能够使用不同的调用上下文调用它。(它不一定这样做,但这是可行的)