xpages(注8.5.3)では、組み込みのサーバー側javascript関数toJsonを使用して、javascriptオブジェクトをjsonとして保存しています。ただし、fromJsonを使用して文字列からオブジェクトを取得すると、結果のオブジェクトに含まれる配列に対して個人のプロトタイプ関数を使用できなくなります。
例として:
var obj0={x:[1,2,3,"x","y","z"]};
var s=toJson(obj0);
var obj1=fromJson(s);
var x0=obj0.x.copy(); // WORKS FINE
var x1=obj1.x.copy(); // ERROR RAISED
発生したエラーは次のとおりです。
[TypeError]タイプ'Array[JavaScript Object]'のオブジェクトでメソッド'copy()'を呼び出すときにエラーが発生しました
関数copy()は、配列の単純なプロトタイプ関数であり、正常に機能します。
if(!Array.prototype.copy) {
Array.prototype.copy=function() { return this.slice(0); }
}
上からの配列x1はinstanceofArrayであり、スライス、結合などのすべての組み込み配列関数をサポートしていますが、プロトタイプ関数の使用は機能しません。
誰かが私がここで間違っていることを知っていますか?