しろログ

日々巡り会ったものの感想・レビュー

Month: 1月 2008 (page 2 of 2)

「JavaScriptはprototypeベース」を再確認

JavaScriptはprototypeベースのオブジェクト指向言語なんだぜー、
ということに慣れてきたところ、「prototypeベースの」という部分を忘れてはまった。

var Box = function() {};

Box.prototype = {
toys: [],
addToy: function(name) {
this.toys.push(name);
}
}

まず、こんな感じで、toysプロパティと、addToyメソッドを持った
Boxクラスを作ったつもりになる。

早速インスタンスを作るぜ。

var MyBox = new Box;
var YourBox = new Box;

おもちゃを入れるぜ。

MyBox.addToy('ball');
alert(MyBox.toys.length); // 1

YourBox.addToy('puzzle');
alert(YourBox.toys.length); // 2

げーん。1つだけ入れたつもりが、なぜか2個に…魔法の箱だぁ。

もちろん、下のような感じでも、

function a() {
var MyBox = new Box;
MyBox.addToy('ball');
alert(MyBox.toys.length);
}

毎回新たに作ってるつもりだったのに……

a(); // 1
a(); // 2
a(); // 3

でもこれ、↓と同様だと考えれば納得できる

var a = [];
var b = a;

a[0] = 'hey';

alert(b[0]); // hey

newした時に、新しいオブジェクトは自分用に元のprototypeをコピるけど、
参照型の場合、コピるのはあくまでも「参照」だけで、参照してる先まではコピらないってコトかな。
上で言う「b = a」とだけしてる感じ。

(newが具体的に何をしてるかはこちら)

なので逆に、数値とか文字列とか、プリミティブ型は問題無い。

ちなみに、ECMAscriptでの定義は、

プリミティブ値 (Primitive Value)
プリミティブ値 (primitive value) は Undefined, Null, Boolean, Number, String 型のうちの一つの構成要素である。プリミティブ値は言語実装の最低レベルにおいて直接表されるデータである。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/4_Overview.html

オブジェクト (Object)
オブジェクトは Object 型の構成要素である。序列のないプロパティの集合体で、それぞれのプロパティがプリミティブ値やオブジェクト、関数を含む。オブジェクトのプロパティに格納された関数はメソッドと呼ばれる。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/4_Overview.html

こんな感じ。

とりあえず、この問題を避けるには、
コンストラクタ内で新しいオブジェクトを参照するようにしてやれば、OK。

var Box = function() {
this.toys = [];
};

Box.prototype = {
addToy: function(name) {
this.toys.push(name);
}
}

初期化はコンストラクタでしようぜ、という感じ。

BLUE DROP ~天使達の戯曲~

アニメ「BLUE DROP ~天使達の戯曲~」を見た。

BLUE DROP ~天使達の戯曲~

Wikipediaによると、いろいろシリーズがあるっぽい。

本作は全体に百合の香りが漂っている。
内容的には学園モノとSFモノが平行して(融合ではない)進む感じ。

最後に劇が中途半端なまま終わったことが不完全燃焼な人もいるかもしれないけど、
このアニメそのものが劇の内容だったとすれば、納得できるんじゃないかと。

実際、劇の中で重要になると思われるシーンは素でやってたし、
副題にも「天使達の戯曲」とあるくらいだしね。

特にじっくり鑑賞するようなものではないと思うけど、
毎週ダラダラ見るには良い作品だったなー。

Wii & WiiFit

あけましておめでとうございます

年末・年始は結構散財した。
暮れに5.1chシステム買ったり、
ロストオデッセイの封も開けないうちから、
安いエースコンバット6を発見してそれ買ってやってたり、
うちの親がWiiFitをやりたいと言ったので、それも買ったりした。

結局、次世代機は全て買ってしまったわけだ。

売り場をウロウロしたけど、やっぱりWiiの年齢層はかなり低いようで、
興味を引くようなソフトは無かったので、WiiとWiiFitのみゲット。
+100円で、やわらか頭塾もついてきた。

とりあえず、WiiFitを皆でやってみたけど、「皆で」というのがポイント。
1~3分で終わるミニゲームの集まりのようなものなので、皆でわいわいやるほうが楽しい。
まさに家族向け。一人でやるもんじゃなさそう。
ヨガとか筋トレくらいならいいかもしれないけど。

けど、一人で筋トレなら、ビリーをやるかな。

話変わるけどPS3で、ディスプレイにHDMIが無くても、
DVI端子があれば、HDMI->DVIのケーブルでつなげる、ということだったので、
IO DATAのLCD-TV241XBRにHDMIケーブル+HDMI->DVI変換アダプタをつけてやったらできなかったorz

変換アダプタがいかんのか?

にしてもHDMIケーブル高すぎ。
1.5メートルで3000円とは……

Newer posts

© 2018 しろログ

Theme by Anders NorenUp ↑