��ϥӥ�˼꺢��������ä��Τǡ�

���졢�¤ϡ�Java��ȯ�ԤΤ����Ajax������ȯ�����פǤ�Ҳ𤵤�Ƥ��������

for ʸ��̵̾�ؿ��Υ��ǥ����� - IT�ﵭ
�Ȥ����櫓�ǡ�����򤹤٤Ʋ�褹��Τ�
for (var i = 0, len = list.length; i < len; i++) (function(node, i) {
    var text = node.textContent; 
    node.onclick = function() { alert(text) };
})(list[i], i)
�ʤΤ���

����������������˻Ĥ��줿���꤬�Ĥ롣

��ʬ�Ǥ⸡�ڤ��Ƥߤ���

n = :

���졢�ǥե���ȤǤ�100����ˤ��Ƥ��뤱�ɡ�IE�Ǽ¹Ԥ�����ϰ�徯�ʤ�10�����侩��

Scopeless

var result = 0;
for (var i = 0; i < n; i++){
  result = i;
}

Closure as a block

var result = 0;
for (var i = 0; i < n; i++) (function(a){
  result = a;
})(i);

with()

var result = 0;
for (var i = 0; i < n; i++) {
    with({a:i}) {
        result = a;
    }
}

�ɤΥ֥饦�����Ǽ¹Ԥ��Ƥ⡢function()���ʤ�����®���Τ����ɡ�IE�ξ�硢�Фä��㤦�ۤ��٤��ʤäƤ��ޤ���

�ǡ��������פ��Ƥߤ롣

Closure as a block, predefined

var result = 0;
for (var i = 0, block = function(a){ result = a }; i < n; i++) block(i);

Closure as an iterator

var result = 0;
(function(block){
    for (var i = 0; i < n; i++) block(i);
})(function(a){
    result = a 
});

������ξ����ܰʾ��®�ˤϤʤä���IE���Ȥ���Ǥ�ޤ������Ǥ��ʤ��ۤ��٤����ɡ�

�ȤϤ�����amachang����Ǥϥ������פϤɤ����Ƥ�ɬ�פˤʤ롣

�ʾ��դޤ���ȡ�

for (var i = 0, len = list.length; i < len; i++) (function(node, i) {
    var text = node.textContent; 
    node.onclick = function() { alert(text) };
})(list[i], i)

��

var block = function(node){
    var text = node.textContent; 
    node.onclick = function() { alert(text) };
};
for (var i = 0, len = list.length; i < len; i++) block(list[i]);

�Ƚ񤯤Τ������ǤΥ٥��ȥץ饯�ƥ������Ȼפ�졣�̤θ������򤹤�ȡ��ʤ�٤��롼�פ���Ǥ�closure���������ʤ������褤��

Dan the JavaScripter