HOME

{ 配列と連想配列をミックスした Object 作成 }

{ svg, javascript で作成したプログラム一覧 }

推奨 ブラウザ : chrome



ライブラリなどで見かける短縮コードの動作確認テストです。
以前作成したプログラム → { javascript : ライブラリ作成 - A } では、
大まかな、プログラムの仕組みの確認をしました。
今回は、そのプログラムを修正して、効率よく動作させるには、どのような方法があるのか、
幾つか試作を作り、試してみました。
前回のは、関数が呼び出される度に、同じ値の変数や OBJECT を再読込み(上書き)してしまう書き方でしたが、
今回のは、一度読み込めば、その後、値の変更もなく、読込の必要がないものは、
上書きをしないように、気遣いながら、作成しました。
前回のより、少し良くなった感じです。

ライブラリの戻り値と作成したプログラムの戻り値を確認していた所、
作成方法が分からない、 Object が戻り値として戻ってきました。
関数の引数の参照に使用する、arguments と同じような感じです。
配列( Array )があって、その後に 連想配列( object )。
作成したプログラムの返り値は、 Object です。。。
この、ミックスされた Object が便利だと思った所は、
要素を取り出すのに インデックス で取得できたり、
object 内の関数を実行で出来たりする所です。
純粋な Object では、object 内の配列( Array )の値を取り出すのに、
一度、添字、その後インデックスをふって、取り出す方法になると思います。
この、Object の作成方法を検索したのですが、
見つけることが出来ませんでした。
コードが読めれれば、いいんですけど、読めません。_( _´ω`)_
あれこれ試して、同じような Object を作成することが出来ました。
この方法が正しいのかは謎。。。です。

Object 内にある __proto__ を書き換えると、
同じようなオブジェクトを作成することが出来ました。
ベースは Array 。
その、 __proto__ の値を Object に書き換えます。
Array.__proto__ = {};
Object.setPrototypeOf(Array,{});
などで、書き換えが出来るようです。
下の画像の上は、 純粋な Object 。
下は、Array.__proto__ を Object へ書き換えたものです。
配列があって、その後に Object の中にある関数が並んでいます。
確認した範囲では、__proto__ を Object へ書き換えてしまったので、
Array で使えた関数が使用出来なくなりました。
push() などが使えないので、値を設定するのに少し手間がかかる感じです。

Object

Object

Array.__proto__ を Object へ書き換え

Array.__proto__ を Object へ書き換え

上が arguments の戻り値, 下が作成した Object の戻り値

上が arguments の戻り値, 下が作成した Object の戻り値

数学の勉強をやり直ししてたりします。_´ω`)_