console.log(addTo(4))を使用していません。あなたの答えをありがとう!起動機能、閉鎖
Q
起動機能、閉鎖
0
A
答えて
0
コードをアンパックします。我々は
var addTo = function (passed) {
var add = function(inner){
return passed + inner;
};
return add;
}
var x = addTo(2);
console.log(x(4));
で起動した場合、その後のスコープを無視して解凍してみましょう:
function actualAdd(passed, inner){
return passed + inner;
};
function addTo(passed) {
return function(x) { return actualAdd(passed, x);
}
var addSomethingTo2 = addTo(2);
// This is a handle for the actualAdd() function,
// in which "passed" is always the value 2.
console.log(addSomethingTo2);
var thisIsSix = addSomethingTo2(4);
// By calling addSomethingTo2(4) we run the calculation
// 2 + 4 and return the result of that: 6
console.log(thisIsSix);
0
あなたaddTo
関数が別の関数、機能add
を返します。
あなたがx = addTo(2)
を行うと、x
の値は、今あなたがaddTo
に渡された2
値へのアクセスを持っている機能add
、です。
- 起動
addTo
を2
に引数として渡さ2
によるへのアクセス権を持っているadd
addTo
リターン:あなたが
は、それが意味しているx = addTo(2)
をした後、あなたがconsole.log(x(4))
を行うconsole.log(addTo(2)(4))
を行うことに等しく、クロージャーにaddTo
(関数add
)によって返された関数を呼び出し、引数はです3210- 戻るまでの合計に
passed
とinner
の合計、addTo
から返された値が別の関数であるので、それはconsole.log(addTo(4))
では動作しませんので、console.log
は単にFunction
関連する問題
- 1. 機能変数閉鎖
- 2. 閉鎖環境で機能を実行
- 3. 閉鎖機能のスコープでの予期しない動作
- 4. 自動閉鎖アプリケーション
- 5. 連鎖機能
- 6. C#シリアルポート自動閉鎖
- 7. 自動閉鎖ソケットpython
- 8. バッチ - 再起動の方法は?閉鎖を保護するか?
- 9. 閉鎖ループはTalendジョブでは機能しません
- 10. 閉鎖コンパイラタイピング:機能(ファクトリメソッド)を参照してください
- 11. 小さな機能に関する問題と閉鎖
- 12. ラケット - 閉鎖と適用 - 閉鎖
- 13. MemoryStream閉鎖エラー
- 14. 閉鎖タプルは
- 15. 閉鎖コンパイラサービスAPI
- 16. スクリプト閉鎖
- 17. Swift3閉鎖クラッシュ
- 18. スウィフト、閉鎖
- 19. は閉鎖
- 20. JavaScript閉鎖メモリリーク
- 21. 閉鎖代替
- 22. 再帰閉鎖
- 23. Google閉鎖デコンパイラ?
- 24. レルムIOS閉鎖
- 25. スウィフト閉鎖
- 26. テンソルフローの起動機能
- 27. 起動し、C#の機能
- 28. Swiftの連鎖機能
- 29. インテリジェントな自動閉鎖文字
- 30. ブートストラップのアラートの自動閉鎖が
'ADDTOのようなものを出力します'は関数を返しますので、' addTo(4) 'をコンソール化すると、意味のあるものを得る前に、呼び出す必要のある関数をログに記録します。 –
そのため、次のようになります。 'console.log(addTo(2)(4));' – Ultimater