(スコープを無視すれば)こう書いているのと同じだから。
var atai = new Array (1, 2);
function Func () { ; }
Func.prototype = atai;
Func.prototype.getMoji = function () { return 'Hello'; }; // == atai.getMoji
atai.getMoji (); // 'Hello'// Func.prototype(== atai)の全プロパティが Func インスタンス間で共有される
var catai = new Func;
catai[0]; // 1
catai[1]; // 2
catai.length; // 2
catai.getMoji (); // 'Hello'
var catai2 = new Func;
catai2[0]; // 1
catai2[1]; // 2
catai2.slice (0); // 1, 2
catai2.getMoji (); // 'Hello'
// プロトタイプの変更は全インスタンスに影響を及ぼす
atai[0] = 10;
catai[0]; // 10
catai2[0]; // 10
// インスタンス側からプロトタイプを(直接的に)変更することはない
catai[0] = 20; // catai[0] という新しいインスタンスプロパティを作る(オーバーライド)
atai[0]; // 10
catai[2]; // 10
// '0' という名前の、プロトタイプではないインスタンスプロパティを持っているか
atai.hasOwnProperty (0); // true
catai.hasOwnProperty (0); // true
catai2.hasOwnProperty (0); // false