2016-09-25 39 views
0

總之, 什麼JavaScript函數對象的差異

var MyModule = { 
    func: function() {} 
}; 

var MyModule = { 
    func: function f() {} 
}; 

我用第一種方式之間的差別內。但是當我看到角度文檔時,通常是第二種方式。爲什麼,還有什麼區別?

回答

1

這段代碼的執行方式沒有區別,但第二個版本可以幫助您進行調試。如果您在第一個版本中看到堆棧跟蹤出現某些錯誤,您將看到有關某個匿名函數的信息,而在第二個版本中,您將看到函數名稱。

ESLint對此約定有一個規則。你可以閱讀它here

1

第一個有anonymous功能,第二個有named功能。

兩者的工作原理都是一樣的。這只是爲了確保可讀性。添加一個示例代碼來演示兩者。

var MyModule = { 
 
    func: function() { return 10} 
 
}; 
 

 
var MyModuleTwo = { 
 
    func: function f() { return 10} 
 
}; 
 

 
//both will return 10 
 
console.log(MyModule.func()) 
 
console.log(MyModuleTwo.func())