������ˡ���Τǡ�

  • IT�ﵭ - �����ٶ������
  • amachang - JavaScript ����
  • Object.prototype = { /* ... */ }���ò¤±¤ï¿½Ù¤ï¿½

    �ߤˤ����Τǥ��֥������Ȥ������ؤ���������
    Box.prototype = {
        speed: 4,
        move: function() {
            this.left += this.speed;
            this.element.style.left = this.left + 'px';
            if (this.left > 400) clearInterval(this.id);
        },
        start: function() {
            var self = this;
            this.id = setInterval(function() { self.move() }, 20);
        }
    };
    

    ������ȡ�Box��¾�Υץ��ȥ����פ�Ѿ����Ƥ������ˡ��ƥ��֥������ȤΥץ��ȥ����פ˥��������Ǥ��ʤ��ʤäƤ��ޤ�����ü�������

    function MyBox(id){
        this.element = document.getElementById(id);
        this.left = 0;
    }
    MyBox.prototype = Box.prototype; // �����ǷѾ����Ƥ���Τ�
    MyBox.prototype = {              // ��������̵��
      speed:8
    };
    

    ���Τ�����ϡ��ץ��ȥ����ץ١����η����ǡ����饹�١����Τ�Τ���class Klass{...}��ʣ�����о줷�Ƥ⡢���Τ�Τ�־�񤭡פ��Ƥ��ޤ��ΤǤϤʤ����ֽŤ͹�碌�פˤʤ�Τ����ɡ�JavaScript�ξ��prototype��ޤ�ñ�ʤ륪�֥������ȤʤΤǡ��ݤ�����������Ȥ������������Ƥ��ʤ���Τϴݤ��Ⱦä��Ƥ��ޤ���

    ���������ݤǤ�

    Box.prototype.speed = 4;
    Box.prototype.move = function() {
        this.left += this.speed;
        this.element.style.left = this.left + 'px';
        if (this.left > 400) clearInterval(this.id);
    };
    Box.prototype.start = function() {
        var self = this;
        this.id = setInterval(function() { self.move() }, 20);
    };
    

    ��α��Ƥ�������

    (function(c, o){
      for (var p in o){
         c.prototype[p] = o[p];
      }
    })(Box, {
        speed: 4,
        move:  function() { /* ... */ },
        start: function() { /* ... */ }
    });
    

    �Ȥ��뤫��

    Object.prototype.addPrototypes = function(o){ // ���������ɿ侩�Ǥ��ʤ�
       for (var p in o){
          this.prototype[p] = o[p];
       }
    };
    Box.addPrototypes({
        speed: 4,
        move:  function() { /* ... */ },
        start: function() { /* ... */ }
    })
    var ary = [];
    alert(ary.speed);
    

    �Ȥ��뤫��prototype.js��Object.extend()��Ȥ������뤫���Ȥˤ����ֽŤ͹�碌�פ򤹤��ʤ�Ĥ��Ƥ��������������Ȼפ���Proto.prototype = { /* ... */ }�ϻ��Ȥ�����Ͷ�Ǥˤ褯������Τ����ɡ�����JS�Ϥ�����絬�Ϥγ�ȯ�ˤ�Ȥ��ƹԤ��Ϥ��ʤΤǡ�

    with()��Ű��Ū���򤱤�٤�

    ����

    ʣ������
    for (var i = 0, l = nl.length; i < l; i ++) {
        var e = nl[i];
        with({e:e})
        setTimeout(function() {
            var box = new Box(e);
            box.start();
        }, i * 500);
    }
    

    with()�϶��غݤ����ޤؤ󡣤ޤ��Ƥ䤳���������٤ʻȤ�����amachang�Ȥ��Ǥʤ��ȽФƤ��ޤ����������ˤ⤽���񤤤Ƥ��롣

    ���ξ��Ϥ��ä���ľ��

    Box.prototype.later =  function(delay) {
       var self = this;
       setTimeout(function() { self.start() }, delay);
    };
    var nl = document.getElementById('target010').getElementsByTagName('div');
    for (var i = 0, l = nl.length; i < l; i ++) {
        var box = new Box(nl[i]);
        box.later( i * 500 );
    }
    

    �Ƚ񤤤������Ϥ뤫�ˤ狼��䤹����

    JavaScript�˸¤餺���桼�������Ȥ������ʵ�ǽ�ϡ��桼�����˼���������ΤǤϤʤ����饹/�ץ��ȥ�����¦���Ѱդ��Ƥ����٤���

    ̵̾�ؿ���Ҳ𤷤Ȥ�����

    �Ȥ��Τ��ѿ�̾������
    (function() {
        var nl = document.getElementById('target011').getElementsByTagName('div');
        for (var i = 0, l = nl.length; i < l; i ++) {
            var e = nl[i];
            with({e:e})
            setTimeout(function() {
                var box = new Box(e);
                box.start();
            }, i * 500);
        }
    })();
    

    �����ޤ��褿�顢��Ϥ�̵̾�ؿ��ޤǾҲ𤷤��ߤ����ä���

    (function(id, tag, interval){
      var nl = document.getElementById(id).getElementsByTagName(tag);
      for (var i = 0, l = nl.length; i < l; i ++) {
        var box = new Box(nl[i]);
        box.later( i * interval );
      }
    })('target10', 'div', 500);
    

    �������Ƥ����С�HTML�ǥ����ʡ��Ȥ�Ϣ�Ȥ�ڤǡ�

    (function(id, tag){
      var nl = document.getElementById(id).getElementsByTagName(tag);
      for (var i = 0, l = nl.length; i < l; i ++) {
        var box = new Box(nl[i]);
        box.later( i * interval );
      }
    }) // �����ޤ��ѹ����ʤ���!
    (
      'target10', // ���Ǥ�id
      'div',      // ������Υ���̾
      500         // �������Ȥδֳ֤�ߥ��äǻ��ꤷ��
    );
    

    �Ƚ���뤷��

    ;�̤����ɡ�JavaScript��̵̾�ؿ��ǺƵ�������롣���줬�����Τϡ��䤬�����ȤäƤ����ϰϤǤ�Perl 6 �� R ���餤����

    ñ�˥������פ�Ťͤ뤿������˻Ȥ��ˤϤ��ޤ�ˤ�ä����ʤ��ǤϤʤ�����

    �ޤȤ�

    �������� JavaScript Best Practices ���ߤ����ʤ���Perl 5������к����٤��㤷����....

    Dan the JavaScripter