-4

関数呼び出しクロージャーのみです。becoz 以下のコードの object もクロージャーのように動作します。

function makePerson(first, last) {
  return {
    first: first,
    last: last
  }
}

function personFullName(person) {
  return person.first + ' ' + person.last;
}

s = makePerson("Simon", "Willison");
personFullName(s); //output is: Willison, Simon
4

2 に答える 2

1

渡す値は関数スコープ内にあるため、はい、それらはクロージャの一部です。

その時点での値を使用してオブジェクトを作成しています。

編集:あなたの例では、クロージャーを実際に使用していません。

以下はクロージャの例です。

function getCalcFunction(a, b){
    return function() {
         a + b;
    };
}

次のように使用します。

var func = getCalcFunction(1, 3);
alert(func());    // alerts 4
于 2013-04-13T08:11:01.097 に答える