�����äƤ狼��ˤ����ʤäƤ��봶���򤫤ĤƤ��󤶤�´������Τǡ�
JavaScript�ˤ�����ۤȤ�����ƤΥǡ����ϥ��֥������ȤǤ���
���֥������Ȥ�����ˤ⤤����������ޤ����������Ǥϡ֥᥽�åɤ���ġפȤ���������̣�ˤ����Ƥ���¤��Ȥ������ȤǤ����ºݤ˸��Ƥߤޤ��礦��
p(true.toString()); p("String".toString()); p((1).toString()); p((3.14159265).toString()); p([0,1,2,3].toString()); p({q:"answer to life, the universe, and everything", a:42}.toString());
�������.toString()
�Ȥ����᥽�åɤ���äƤ��뤳�Ȥ��狼��ޤ���
����������Ĥ����㳰������ޤ���undefined
��null
�Ǥ���������Ĥϡ��ͤ��ʤ��פȤ����ͤǤ⤢��ޤ������᥽�åɤ�����ޤ���
try{ p((undefined).valueOf()); }catch(e){ p(e.message || e); } try{ p((null).valueOf()); }catch(e){ p(e.message || e); }
���֥������Ȥˤ�����ढ�� - �ץ�ߥƥ��֤Ȼ���
���Υ��֥������Ȥˤϡ��¤�����ढ��ޤ����ͤ��Τ�Τ��ѿ��������Ǥ����Τȡ��ͤλ��Ȥ��������Ǥ��ʤ���ΤǤ������Ԥ�֥ץ�ߥƥ��֡פȤ����ޤ���
�ʲ��ϡ��ץ�ߥƥ��֤��㡣
var a = true; var b = a; p('a is ', a, ', b is ', b, '.'); b = !b; p('a is ', a, ', b is ', b, '.'); var a = 0; var b = a; p('a is ', a, ', b is ', b, '.'); b++; p('a is ', a, ', b is ', b, '.'); var a = "Hello"; var b = a; p('a is ', a, ', b is ', b, '.'); b = "JavaScript"; p('a is ', a, ', b is ', b, '.');
�����ưʲ��ϡ����Ȥ��㡣
var a = {x:'foo', y:'bar'}; var b = a; p('a.x is ', a.x, ', b.x is ', b.x, '.'); b.x = 'baz'; p('a.x is ', a.x, ', b.x is ', b.x, '.');
�㤤���狼��Ǥ��礦����a = b
�Ȥ��Ƥ��顢b
�ˤ������Ѥ�ä�����硢�ץ�ߥƥ��֤Ǥ�b�������Ѥ�äƤ��ޤ��������ȤǤ�a���Ѥ�äƤ��ޤäƤ��ޤ���
JavaScript�Ǥϡ�����䥪�֥�������--JavaScript������ˤ����륪�֥�������--�ʤɡ���������¤�פ���ĥ��֥������Ȥϡ���¤���Τ�ΤǤϤʤ������Ȥ��̤��Ƥ�������ʤ��ΤǤ��������Ǹ�����
a ==> {x:'foo', y:'bar'} b ==> {x:'foo', y:'bar'}
�ǤϤʤ���
a ==v {x:'foo', y:'bar'} b ==^
�ȤʤäƤ���Ȥ������ȤǤ���
�����ѿ����ץ�ߥƥ��֤����Ȥ�Ƚ�ꤹ����ˡ�Ǥ������¤˴�ñ����ˡ������ޤ���typeof()
������ͤ򸫤�ΤǤ���object
�ʳ������ƥץ�ߥƥ��֡������ޤᡢ���Ȥξ���ɬ��object
�ˤʤ�ޤ���
Crockford���ץ��ȥ����׷Ѿ�
����Ǥϡ���a���饳�ԡ�����������b����̣�������Ѥ������׾��ˤϤɤ�������褤�Ǥ��礦����
������褹����ˡ�ΰ�Ĥ���Crockford�����Ĥ����ץ��ȥ�����Ū�Ѿ��ؿ��Ǥ���
var spawn = function(o){ var F = function(){}; F.prototype = o; return new F; }; var a = {x:'foo', y:'bar'}; var b = spawn(a); p('a.x is ', a.x, ', b.x is ', b.x, '.'); b.x = 'baz'; p('a.x is ', a.x, ', b.x is ', b.x, '.'); p('a.y is ', a.y, ', b.y is ', b.y, '.');
������a
������ͤ�Ѿ����Ĥġ�b
�ؤ��ѹ���a
�˵ڤФʤ��褦�ˤʤäƤ��ޤ���
��������b = spawn(a)
�ˤ�������֤�
a ==> {x:'foo', y:'bar'} b ==> {x:'foo', y:'bar'}
�ǤϤ���ޤ���
a ===============v {x:'foo', y:'bar'} b ==> {prototype:^}
�ʤΤǤ���
�������Ƥߤ�ȡ��狼��ޤ���
var spawn = function(o){ var F = function(){}; F.prototype = o; return new F; }; var a = {x:'foo', y:'bar'}; var b = spawn(a); p('a.x is ', a.x, ', b.x is ', b.x, '.'); b.x = 'baz'; p('a.x is ', a.x, ', b.x is ', b.x, '.'); a.y = 'quux'; p('a.y is ', a.y, ', b.y is ', b.y, '.');
��b.y
�ˤʤ���Τ�b.prototype.y
�����Ȥ����ס����줬�ץ��ȥ�����Ū�Ѿ��Ȥ�����̣�ʤΤǤ�����a��b��������Ω���������פȤ������Ϥ�����Ȥ���äȺ��ä����ȤˤϤʤ�ޤ������ۤȤ�ɤξ��Ϥ���ǽ�ʬ�Ǥ��礦���ʤ�����������Ω�������ԡ����ߤ������ˤϡ�����404 Blog Not Found:javascript - uneval() for the rest of us!�ǾҲ𤷤�uneval.js�˴ޤޤ��clone()
�ؿ���Ȥ��ޤ���
����Ϥ���Ȥ��ơ�crockford�Υץ��ȥ�����Ū�Ѿ��ؿ��ˤϤ⤦��ġ��ץ�ߥƥ��֤ˤϻȤ��ʤ��Ȥ������꤬����ޤ���
var spawn = function(o){ var F = function(){}; F.prototype = o; return new F; }; var a = 0; var b = spawn(a); p('a is ', a, ', b is ', b, '.'); b++; p('a is ', a, ', b is ', b, '.');
��������������н褹��ΤϤ���ۤ��񤷤��Ϥ���ޤ���
var spawn = function(o){ if (typeof(o) === 'object' && o !== null){ var F = function(){}; F.prototype = o; return new F; }else{ return o; } }; var a = 0; var b = spawn(a); p('a is ', a, ', b is ', b, '.'); b++; p('a is ', a, ', b is ', b, '.'); var a = null; var b = spawn(a); p('a is ', a, ', b is ', b, '.'); b = !b; p('a is ', a, ', b is ', b, '.'); var a = {x:'foo', y:'bar'}; var b = spawn(a); p('a.x is ', a.x, ', b.x is ', b.x, '.'); b.x = 'baz'; p('a.x is ', a.x, ', b.x is ', b.x, '.'); p('a.y is ', a.y, ', b.y is ', b.y, '.');
�Ǹ�� - JavaScript �� Class �Ϥʤ�
JavaScript�κ������ħ��������Ǥ��礦��new
�黻�Ҥ����뤪�����ǡ��������� Class ������褦�˸����Ϥ��ޤ�����JavaScript �ˤ����Ƥϡ����֥������Ȥϡ�Class ��°����פΤǤϤʤ��֥ץ��ȥ����ס����֥������ȤȤ����Ƥ������߽Ф����פΤǤ���
Crockford �ϡ�JavaScript: The Good Parts�פˤ����ơ�new
�黻�Ҥ�ְ����ѡ��ġפ�ʬ�ष�Ƥ���Τ⤽�줬��ͳ�Ǥ���Class�˴���Ƥ���ȼ¤ˤؤ�Ƥ��˻פ��ޤ������ץ��ȥ����׷Ѿ��Ȥ����ΤϤޤ�����ʪ����äƤ��뤳�Ȥǡ��ּ����פ˹ͤ���Ф���ۤɴ�ۤǤ�ʤ����伫�ȺǶ�ϤۤȤ��new
�黻�Ҥ�ȤäƤ��ޤ���
Dan the JavaScripter
>��b.y�ˤʤ���Τ�b.prototype.y�����Ȥ�����
�ͤǤϤʤ��ѿ����Ѿ������ΤǤ��͡� ��ä�Ǽ���Ǥ��ޤ�����
�ʲ����ͤˤ��äȴ��㤤�򤷤Ƥ����Τϻ������
var a = {x:'foo', y:'bar'};
var b = spawn(a); // b.y ���Ѿ���������
a.y = 'a.y changed'; // b.y ��ưŪ�˷Ѿ������
b.y = 'b.y changed'; // b.y ���ѹ�
a.y = 'a.y changed'; // b.y �ˤϷѾ�����ʤ� - �ʤ󤸤㤳�졩
�֥ץ��ȥ�����Ū���ȡפȤ��֥ץ��ȥ�����Ū�ѿ��Ѿ��פȤ��ˤ��Ȥ��Ƥۤ�����
���꤬�Ȥ��������ޤ�����