我总是习惯写这样的函数:
var myFunction = function(param) {
console.log(param);
};
myFunction('myFunction');
现在我已经看到了这个:
var otherFunction = function whyNameHere(param) {
console.log(param);
};
otherFunction('otherFunction');
我想知道whyNameHere
是什么?函数何时以及为什么要这样写?我也可以称之为与上面的myFunction
函数完全相同..为什么有人会写whyNameHere
?还有这种功能的命名吗?
如果有人想玩它,here is a fiddle
答案 0 :(得分:0)
使用它可以在创建的函数对象上设置.name
属性。
> var f = function g() { }
< undefined
> f.name
< "g"
以后不可能改变它:
> f.name = "f"
< "f"
> f.name
< "g"
它对......事物很有用。
示例:
setImmediate(function unicorns() {
console.log("rainbow");
throw "glitter";
});
将在堆栈跟踪中显示为:
Uncaught glitter
unicorns @ VM691:4
而不是
Uncaught glitter
(anonymous function) @ VM693:4