函式具名化

2021-10-17 04:53:02 字數 551 閱讀 8472

下面的**列印什麼內容,為什麼?

var b=10;

(function b() )();

console.log(b);

最後輸出的答案是

因為函式具名化引起的

匿名函式具名化

所以第乙個console.log輸出的是具名函式本身,第二個console.log輸出的是外面的b即為10

下面兩個對比更好的理解具名函式機制

//=>匿名函式具名化

varfn

=function

sum();

fn();

sum();

//->uncaught referenceerror: sum is not defined 匿名函式具名化,設定的函式名不能在函式以外使用「因為並沒有在當前上下文中宣告這個變數」

varfn=

function

sum();

fn();

js匿名函式和具名函式

按照ecmascript標準,函式表示式的樣式如下 opt記號代表的是可選的,也就是可有可無的意思 functionexpression function identifier opt formalparameterlist opt 函式表示式中函式的識別名是可以不需要有的,有名稱的函式表示式,也就...

Python namedtuple 具名元組

python中的tuple是乙個非常高效的集合物件,但是我們只能通過索引的方式訪問這個集合中的元素,比如下面的 bob bob 30,male print representation bob jane jane 29,female print field by index jane 0 for p...

具名元組 namedtuple

作用 命名元組賦予每個位置乙個含義,提供可讀性和自文件性。它們可以用於任何普通元組,並新增了通過名字獲取值的能力,通過索引值也是可以的。collections.namedtuple typename,field names,rename false,defaults none,module none...