これは私が立ち往生したコードです。関数から無名関数を返すとき、return文の関数は関数宣言または関数式ですか?
var bind = function(func, thisValue) {
return function() {
return func.apply(thisValue, arguments);
}
}
私は実行コンテキストとクロージャについて学習しています。私の推測では、最初のreturn文の関数は、文の一部である関数式です。しかし、funcとthisValueを参照してクロージャがどのように作成されるのか分かりません。
関数式の場合、bindが呼び出されると、匿名関数はそこで評価されないため、スコープを含む[[scope]]プロパティを持つ関数オブジェクトは設定されませんバインドの実行コンテキストのしたがって、無名関数はfuncとthisValueに[[scope]]プロパティでアクセスできません。
コードが実際にクロージャを形成する場合、私の推測は間違っており、最初のreturn文の関数は関数宣言でなければなりません。または、戻り値が評価されたときに私は誤解しているかもしれませんか?これについての助けがあれば、大歓迎です!
このフリルで行ってくれてありがとう!それは私が何とかしていたものではありません:-)。下記参照。 – aaronfalloon
ああ、わかった、私は '閉鎖'を読んで、残りの質問を飛ばした。愚かな私。 – Halcyon