オブジェクトちょっとわかるようになった!

年末だけど引き続き JavaScript。けどガキ使見ながら勉強していたらやっぱり理解度とか集中してやるのに比べると全然ダメだったから、明日からはやっぱりテレビとか見るのはやめよう。

知ったこと

eval() 関数

文字列を JavaScript として実行してくれる。
使い道の想像がまだ出来ないけど、なんとなく便利そうな雰囲気は感じる。

インスタンスコンストラクタ

個々のオブジェクトがインスタンスと呼ばれ、インスタンスを作成して初期化するのがコンストラクタ

var arr = new Array();

と書いたら、
× Array オブジェクトのインスタンス arr を作成
◯ Array オブジェクトのインスタンスを作成して arr に割り当て
この割り当てというのが重要で、あくまで値ではなく参照しているからこういう言い方になるんじゃないかな。

ラッパー

コアオブジェクトのうち、Number / String / Boolean の 3 つはプリミティブ型に対応している。
これらにおいては基本的にインスタンスは使わないが、メソッドを使うことができる。
何が起きているのかというと、これらについてメソッドを呼び出すと対応するラッパークラスのオブジェクトが自動的に生成される。

文字列操作

パターンマッチ

match を使うときに g フラグを立てないと、パターンに最初にマッチした文字列が返される。
ここで括弧をつかっていると、括弧に相当する部分も返される。
g フラグを立てるとすべてのマッチする部分が返される。

replace でのキャプチャ
var str2 = "textJavatextJavatextJava";
var reg2 = new RegExp("(text|Java)", "g");
msg2 = str2.replace(reg2, "<b>$1</b>");

のようにキャプチャした部分を $1 に置き換えることができる。

function オブジェクトの作りかた。

1つめ。

x = new Function("arg[0]", "arg[1]", "return arg[0] + arg[1];");

2つめ。

x = function(arg[0], arg[1]){
    return arg[0] + arg[1];
}