我覺得這個問題很奇怪。 不知何故,我覺得答案應該是非常明顯的。但事實並非如此。函數參數而不是直接參考
在Java腳本中,考慮到在另一個對象的作用域內,我可以直接訪問任何周圍作用域中的變量並將其變異。爲什麼我會選擇將這些變量作爲參數傳遞給函數而不是直接引用?最佳做法是什麼?什麼時候會選擇傳遞某些東西而不是使用直接引用方法?這只是一個問題,如果我想引用實際的變量或僅僅是它的值,類似於C語言系列中使用的系統類型?
例如:
我爲什麼這樣做:
var foo= 1;
var bar = function(foo) {
return foo + 2;
}
相反的:
var foo = 1;
var bar = function() {
return foo + 2;
}
這使得有點道理:
var bar = function(foo) {
return foo + 2;
}
foo = bar(42); // foo = 44
以及你的第一個和最後一個,富里是不一樣foo的外面.... – epascarello
功能不引用閉包變量的函數是「純」函數,並且可以隨意移動它們;他們沒有被綁定到他們的具體位置。當代碼開始膨脹並且需要組織時,這可以提供幫助。 –