是在一些JS代码性能的工作,看到这种方法:在对象中声明函数名称,为什么?
window.sample = {
foo: function foo(a,b){
// code goes here
}
bar: function bar(a,b){
// code goes here
}
}
没有任何理由,你为什么会单词“功能”后减速功能的名称?
它有助于调试吗?
它是好还是坏或者只是不必要?
是在一些JS代码性能的工作,看到这种方法:在对象中声明函数名称,为什么?
window.sample = {
foo: function foo(a,b){
// code goes here
}
bar: function bar(a,b){
// code goes here
}
}
没有任何理由,你为什么会单词“功能”后减速功能的名称?
它有助于调试吗?
它是好还是坏或者只是不必要?
秀达唯一的理由是,你可以使用函数本身从函数内不会对对象的引用:
foo: function foo(a,b){
return a > 0 ? a + foo(a-1,b) : b;
}
,对于名为函数文本支持
注howeever是跨浏览器并不一致,所以你应该避免使用它。
这是一个命名函数表达式。该函数的名称仅作为函数本身内的变量提供。这对于递归有用的,例如:
var obj = {
foo: function foo(node) {
// Do something to node
var childNode = node.firstChild;
while (childNode) {
foo(childNode);
childNode = childNode.nextSibling;
}
}
};
函数的名称也是通过功能的非标name
属性,它可以帮助识别功能,同时调试或检查堆栈跟踪大多数浏览器可用。
IE < 9有一个有缺陷的实现,所以在使用它时需要小心。全部细节可在Juriy Zaytsev's excellent article on the subject中找到。
减速....? – JJJ
啊,你的意思**宣布** – Joseph
@JosephtheDreamer哦,对。 (“代码性能”上下文是一条红色的鲱鱼。) – JJJ