// definition
Array.dim = function(dimention, initial) {
var a = [], i;
for (i = 0; i< dimention; i += 1) {
a[i] = initial;
}
return a;
}
// console.log(Array.dim(10, 2));
// p.73
var my_array = Array.dim(2, []);
console.log(my_array);
my_array[0].push(1)
// [ [ 1 ], [] ]
// console.log(my_array);
// p.74
Array.matrix = function(m, n, initial) {
var a, i, j, mat = [];
for (i = 0; i < m; i += 1) {
a = [];
// for (j = 0; j < n; j++) {
for (j = 0; j < n; j += 1) {
a[j] = initial;
}
mat[i] = a;
}
return mat;
}
var my_matrix = Array.matrix(2, 3, 'a');
// console.log(my_matrix);
Array.identity = function(n) {
var i, mat = Array.matrix(n, n, 0);
for (i = 0; i < n; i += 1) {
mat[i][i] = 1;
}
return mat;
}
var my_identity = Array.identity(4);
// console.log(my_identity);
var hoge = {a: 1};
hoge.__proto__ = {c: 3};
console.log(hoge);
console.log(hoge['c']);
// JSON に変換する
var hoge_json =JSON.stringify(hoge);
console.log(hoge_json);
// オブジェクトに復元する
var foo = JSON.parse(hoge_json);
// オブジェクトの状態を更新する
hoge['b'] = 2;
// プロトタイプは保持されない
console.log('hoge', hoge, hoge['c']);
console.log('foo', foo, foo['c']);
console.log('*****')
// for in を試してみる
// var array = [1, 3, 5];
var obj = {a: 1, b: 3, c: 5};
var parent = {e: 7};
parent.__proto__ = {a: 9};
obj.__proto__ = parent;
for (var n in obj) {
console.log(n, obj[n]);
}