������ˡ���Τǡ�
- 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
ï�˥ץ�������񤯥�������Τɤ�����������븢����������
���ޤ��϶��ʽ񤽤Τޤ�ޥ��ԡ�����Τ�����