我注意到公司里的人喜欢在将函数分配给变量时命名函数。如果没有命名它们,它的工作原理完全相同有什么好处?
function TargetingForm() {
'use strict';
this.setPristine = function setPristine() {
...
}
//vs
this.setPristine = function() {
...
}
}
答案 0 :(得分:4)
为了确保在调试时函数的名称出现在堆栈跟踪中(而不是显示为"匿名函数")。
但是,许多现代javascript引擎可以为堆栈跟踪派生一个有用的名称,即使在赋值表达式中匿名声明该函数,例如在第二个示例中。
答案 1 :(得分:3)
我能想到的一件事(如果我是对的!)是你可能需要从它自己调用函数(递归)。
例如,你可以这样做:
function TargetingForm() {
'use strict';
this.setPristine = function setPristine() {
// You can do this
if (someConditionIsTrue) {
setPristine();
}
}
//vs
this.setPristine = function() {
// You can't do the same here!
}
}