Firefox 2 �� JavaScript �ɂ����� let �̎g����

�v�|

�@Firefox 2 �� JavaScript (JavaScript 1.7) �̐V�@�\�̈�‚ł��� let ���g���ƁA�N���[�W���[�����Ƃ��ɂ��肪���Ȃ܂ǂ���������R�[�h���Ȍ��ɏ������Ƃ��ł��܂��B

�͂��߂�

�@Firefox 2 �ł� JavaScript 1.7 ���g����悤�ɂȂ�܂����B generator�A iterator�A destructuring assignment ([a, b] = f(); �� {first: a, second: b} = g(); �Ƃ����`�̑��) �Ȃǂ̋@�\�������Ă��܂��B

�@JavaScript 1.7 �̐V�@�\�̈�‚� let �ł��B��������‚��Ėl�͊������Ȃ�܂����B�����A�p�����������ƂɁA���܂ł��� let �̋@�\���ق����Ǝv�������Ƃ͉��x���������̂ɁA�ڂ̑O�ɂ��邱�ƂɋC�t���Ă��܂���ł����B JavaScript 1.7 �̐V�@�\�� Firefox 2 �������[�X���ꂽ�Ƃ��ɖڂ�ʂ����‚��肾�����̂ł����A�܂������ƌ��Ă��Ȃ������̂ł��傤�B let ������ƁA����܂ŏ����ɂ��������R�[�h���ȒP�ɏ�����悤�ɂȂ�ǖʂ�����܂��B

����

�@�����ŏЉ��͍̂������g����n�E�c�[�ł͂���܂���B�����_�ł͂��̍\�����g����E�F�u�u���E�U�[�� Firefox 2 ���炢�����Ȃ��̂ŁA��ʓI�ȃE�F�u�y�[�W�Ŏg���̂͂����߂��܂���B�������Ɏg����̂́A Firefox 2 ��ΏۂƂ��� Firefox �g���@�\��A�N���C�A���g�� Firefox 2 �ł���悤�ȃC���g���l�b�g�‹��ł̃A�v���P�[�V�����������Ă���l�����ł��B

�@�����A�v���O�����������l�ɁA�������v���O�������������ɂ͗����Ȃ��Ă��A�u���������\��������Ƃ���ȕ��ɖ��ɗ��‚̂��B�Ӂ[��v�Ǝv���Ă��炦����������ȂƁB

let �̂Ȃ����E

�@�l�͈ȑO���̂悤�ȃv���O�����������āA���܂����삹���������o��������܂��B

�v���O���� 1 (���s��)

 1  var list = document.getElementById("list");
 2  var i;
 3  for (i = 1; i <= 5; i++)
 4  {
 5      var item = document.createElement("LI");
 6      item.appendChild(document.createTextNode("Item " + i));
 7      item.onclick = function (ev) {
 8          alert("Item " + i + " is clicked.");
 9      };
10      list.appendChild(item);
11  }

�@������ list �Ƃ����̂� HTML �������� UL �v�f�ɕt����ꂽ ID ���Ƃ��܂��B�v���O�����͗Ⴆ�� BODY �v�f�� onload ����Ă΂�Ă���ƍl���Ă��������B�ȉ��̃v���O�����ł����l�ł��B

�@���̃R�[�h�����s����ƁA Item 1 ���� Item 5 �܂� 5 �‚̍��ڂ����ƒ��X�g���\������܂����A�ǂ���N���b�N���Ă��uItem 6 is clicked.�v�ƕ\������Ă��܂��܂��B

�@�����֐��̒��ŎQ�Ƃ��Ă��� i �͓��R�R�[�h 2 �s�ڂŐ錾����Ă��� i �ł��B���� i �̒l�͍ŏ� undefined �ŁA���̌� 1, 2, 3, 4, 5, 6 �ƕς���Ă����܂��B�����֐��� 5 �������A for ���[�v�𔲂����Ƃ��ɂ� i �̒l�� 6 �ɂȂ��Ă��܂��B���̂��߁A���X�g���ڂ��N���b�N����ƁuItem 6 is clicked.�v�ƕ\�������̂ł��B�����֐��̒��ŎQ�Ƃ��Ă���ϐ��ɑ΂��āA�j��I��� (JavaScript �ł̑���͓��R���ׂĔj��I����ł�) ���s������A�\�������悤�ɓ��삵�Ȃ��̂ł��B

�@�v���O���������̂悤�ɕς��Ă����͉������܂���B

�v���O���� 2 (���s��)

 1  var list = document.getElementById("list");
 2  var i;
 3  for (i = 1; i <= 5; i++)
 4  {
 5      var item = document.createElement("LI");
 6      item.appendChild(document.createTextNode("Item " + i));
 7      var j = i;
 8      item.onclick = function (ev) {
 9          alert("Item " + j + " is clicked.");
10      };
11      list.appendChild(item);
12  }

�@7 �s�ڂŐ錾���ꂽ�ϐ� j �̃X�R�[�v�� 12 �s�ڂŏI���܂����A�ׂ‚Ƀ��[�v����邽�тɐV�����ϐ��������킯�ł͂Ȃ��̂ŁA�ǂ̃��X�g���ڂ��N���b�N���Ă��������ʂɂȂ邱�Ƃɕς��͂���܂��� (���̃v���O�����ł͂ǂ�ł��uItem 5 is clicked.�v�ƕ\������܂�)�B

�@���̖�����������ɂ́A�����֐�����邽�тɕʂ̕ϐ���p�ӂ��Ă��K�v������܂��B Firefox 1.5.x �ȑO�� JavaScript (ECMAScript ����d�l�� 3 �ŁA JavaScript 1.6) �ł́A�V�����ϐ���p�ӂ��邽�߂ɂ͊֐��Ăяo��������K�v������܂��� (6 �� 6 ���NjL: ����͊ԈႢ�ł����B with �����g���Ă������ł��܂�)�B�Ȃ̂ŁA���������v���O�����ɂ���K�v������܂����B

�v���O���� 3 (���s��)

 1  function createHandler(j)
 2  {
 3      return function (ev) {
 4          alert("Item " + j + " is clicked.");
 5      };
 6  }
 7
 8  var list = document.getElementById("list");
 9  var i;
10  for (i = 1; i <= 5; i++)
11  {
12      var item = document.createElement("LI");
13      item.appendChild(document.createTextNode("Item " + i));
14      item.onclick = createHandler(i);
15      list.appendChild(item);
16  }

�@createHandler �֐��𖳖��֐��ɂ��Ă��悢�̂ŁA���̂悤�ɂ������܂����A�����m��Ȃ��l�ɂ͉����������킩��Ȃ��v���O�����ɂȂ��Ă���ł��傤�ˁB

�v���O���� 4 (���s��)

 1  var list = document.getElementById("list");
 2  var i;
 3  for (i = 1; i <= 5; i++)
 4  {
 5      var item = document.createElement("LI");
 6      item.appendChild(document.createTextNode("Item " + i));
 7      item.onclick = function (j) {
 8          return function (ev) {
 9              alert("Item " + j + " is clicked.");
10          };
11      } (i);
12      list.appendChild(item);
13  }

�@����ɁA�� j �Ə����Ă���ϐ��ɂ������� i �Ƃ͕ʂ̖��O���g�����R���Ȃ��̂ŗ����Ƃ� i �Ə����ƁA�܂��܂��~�X�e���A�X�ɂȂ�܂��B�ׂ‚ɂ킴�Ƃ킩��ɂ������Ă���̂ł͂Ȃ��̂ł����B

let �̈З�

�@Firefox 2 (JavaScript 1.7) �ŐV���ɓ������ꂽ let ���́A���̂悤�ȍ\���Ŏg���܂��B

let (�q�ϐ����r = �q���r [, �q�ϐ����r = �q���r [, �c]])
    �q���r

�@���̕������s����ƁA�V���ɋǏ��ϐ������A �q���r ��]�����Č��ʂ������A���̋Ǐ��ϐ��� �q�ϐ����r �̖��O�ŎQ�Ƃł����Ԃ� �q���r �����s���܂��B�Ȃ��A�O���œ������O�̕ϐ��������Ă����֌W�ɂȂ�܂��B

�@���̍\�����g���ƁA��̃v���O�����͎��̂悤�ɊȌ��ɏ����܂��B

�v���O���� 5 (���s��)

 1  var list = document.getElementById("list");
 2  var i;
 3  for (i = 1; i <= 5; i++)
 4  {
 5      var item = document.createElement("LI");
 6      item.appendChild(document.createTextNode("Item " + i));
 7      let (j = i)
 8      {
 9          item.onclick = function (ev) {
10              alert("Item " + j + " is clicked.");
11          };
12      }
13      list.appendChild(item);
14  }

�@����͂����ł��ˁB�Ȃ��A JavaScript 1.7 �̐V�@�\���g���ɂ́A SCRIPT �v�f�Ȃǂ� type �������uapplication/javascript;version=1.7�v�Ƃ���K�v������܂��B

�@�Ȃ��A for ���Ń��[�v���񂷌���A j = i �̂悤�Ȉꌩ���ʂɌ���������h���ň�‚̕ϐ��������g���ē������Ƃ���������͕̂s�”\���Ǝv���܂��B

let ���� let ��`

�@JavaScript 1.7 �ł� let ���ȊO�ɂ� let ���� let ��`�Ƃ����V�����\�����p�ӂ���Ă��܂��B�ǂ���V�����Ǐ��ϐ�����邽�߂̍\���ł��B�����͏�ł������N�𒣂��� Mozilla Developer Center ���Q�Ƃ��Ă����������Ƃɂ��āA��̃v���O������ let ���� let ��`���g���Ă�������̂ŁA���̃T���v�����������Ă����܂��B

�@let �����g���Ǝ��̂悤�ɂȂ�܂��B

�v���O���� 6 (���s��)

 1  var list = document.getElementById("list");
 2  var i;
 3  for (i = 1; i <= 5; i++)
 4  {
 5      var item = document.createElement("LI");
 6      item.appendChild(document.createTextNode("Item " + i));
 7      item.onclick = let (j = i) function (ev) {
 8          alert("Item " + j + " is clicked.");
 9      };
10      list.appendChild(item);
11  }

�@let ��`���g���Ɖ��̂悤�ɂȂ�܂��B�v���O���� 2 �ƌ���ׂ�� var �� 1 �� let �ɏ��������������łقƂ�Ǔ����ł����A������̃v���O�����ł͕ϐ� j �����[�v����邽�тɐV��������邱�Ƃɒ��ӂ��Ă��������B

�v���O���� 7 (���s��)

 1  var list = document.getElementById("list");
 2  var i;
 3  for (i = 1; i <= 5; i++)
 4  {
 5      var item = document.createElement("LI");
 6      item.appendChild(document.createTextNode("Item " + i));
 7      let j = i;
 8      item.onclick = function (ev) {
 9          alert("Item " + j + " is clicked.");
10      };
11      list.appendChild(item);
12  }

�֘A�y�[�W

�@nanto_vi ����̃u���O�uDays on the Moon�v�̋L���uJavaScript �Ńu���b�N�X�R�[�v�����������v�� let �\�����ڂ����������Ă��܂��B let �ł������֐��ł��Ȃ� with �����g�����@������Ƃ������Ƃ�m��܂����B�����uDays on the Moon�v�́uJavaScript 1.7 �̐V�@�\�v�������߂ł��B

2007 �N 6 �� 2 �����J�A 2007 �N 6 �� 6 ���֘A�y�[�W�lj��A�ԈႢ���C���B����: fcp / ���̃T�C�g�ɂ‚���