是在一些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