Kanasan.JS 読書会#4

インスタンスなんたら
インスタンス・プロパティ (長いので以下イパティ)
各オブジェクトの固有スロット(hasOwnPropertyがtrue)
インスタンス・メソッド (以下イソッド)
各オブジェクトから見える全てのスロット(親オブジェクトのスロットを含む)のうち,関数オブジェクトを指すもの
  • クラスベースの用語なので後ろに「 (のようなもの) 」を補いつつ理解する。正直ややこしい。
  • イパティ以外のプロパティ(親のイパティ)のうち,関数オブジェクトでないものはなんと呼べばいいのやら。
  • イパティに関数オブジェクトも含まれるとすると,イパティかつイソッドであるメソッドがRubyで言う特異メソッド。でもJSでは別に特異な存在では無い。
コンストラクタ・チェーン

一段しか繋がらないものをチェーンと呼ぶのはどうなのか。

y フラグ

というよりもPerlでいう\Gに近い

What good is ¥G in a regular expression?
なるほど,マッチしない限りエンジンを前に進めないから「 sticky 」と。

js> '08-05-24'.match(/-/)
-
js> '08-05-24'.match(/-/y)
null
js> '08-05-24'.match(/\d+/g)
08,05,24
js> '08-05-24'.match(/\d+/gy)
08

y のみだと「 ^ 」を使うのと変わらないが g と併用すると違いが分かる。

Javaスクリプトする

Javaの機能をそっくり使えるのは確かに嬉しい。しかしJRubyJython・Groovy・Scalaと他に選択肢がいくらでもある現状,JSの出番は…。

間違い探し
場所
p168
二つ目のコード
sort(new function sort(function
p184
二つ目のfor内
var c = data.borrows[i];
borrows[i] = c;
var c = borrows[i];
p227
11行目
BigDouble BigDecimal