0

私は JS について (おそらく単純な概念) を理解しようとしています。得られないことを説明するために、以下のコードをまとめました。私が理解していないのは、名前変数が格納されている場所です。その変数は現在グローバルですか?

(function($) {

  var name = '';

  $.helloWorld = function(yourName) {
    name = yourName;
    console.log("Hello " + yourName);
  }

}(jQuery));
4

2 に答える 2

4

変数はキーワードnameで宣言されているため、外側の関数に対してローカルです。var内部関数は、その変数への参照を含むクロージャです。これを示すより良い例を次に示します。

(function($) {

  var name = '';

  $.setName = function(newName) {
    name = newName;
  }

  $.showName = function() {
    console.log("Name is: " + name);

}(jQuery));

これを定義した後、次のことができます。

$.setName("Larry");
$.showName();
$.setName("Fred");
$.showName();

JavaScript クロージャの仕組みを参照してください。

于 2013-06-11T04:45:17.527 に答える