Object.clone() / magicien 

一カ所詰まった&悩み中の仕様についてメモ。

例えば、DHMatrixというクラスを定義したとして、
var m = new DHMatrix();
if(m instanceof DHMatrix){
  alert("TRUE");
}else{
  alert("FALSE");
}
みたいに書くと、TRUEと表示される。でも、
var m = new DHMatrix();
var m2 = Object.clone(m);
if(m2 instanceof DHMatrix){
  alert("TRUE");
}else{
  alsert("FALSE");
}
みたいに書くと、FALSEと表示される。
プログラム内で、特定のクラスのインスタンスかどうかによって処理を分けていて、
この仕様を知らずにハマってました。
解決策は、Object.cloneを使わずに、独自のcloneメソッドを実装することでしょうか...

2010/07/20(Tue) 00:11:17