arrvar
受信した引数に変数を設定する関数を作成しました。次に、その関数にいくつかのメソッドを追加しました。
setArray
:引数を最後に追加しますarrvar
showArray
:配列を出力しますarrvar
showArrayType
:配列の型を出力しますarrvar
(これは常にオブジェクトです)showLength
:配列の長さを出力しますarrvar
ここでの問題は、以下に示すようarrvar
に、呼び出したときにの長さが増加しないことです。setArray()
なんでそうなの?
function ArrayClass()
{
if (arguments.length != 0) {
this.arrvar = arguments;
}
}
ArrayClass.prototype.setArray = function () {
for (var i = this.arrvar.length, j = 0; j < arguments.length; i++, j++)
{
this.arrvar[i] = arguments[j];
}
}
ArrayClass.prototype.showArray = function ()
{
for (var i in this.arrvar) {
document.writeln(this.arrvar[i]+' ');
}
document.writeln("<br />");
}
ArrayClass.prototype.showArrayType = function ()
{
document.writeln(typeof this.arrvar + '<br />');
}
ArrayClass.prototype.showLength = function()
{
if (this.arrvar) {
document.writeln('Length: ' + this.arrvar.length + "<br />");
}
}
var arrObj = new ArrayClass(11, 22, 33, 44);
arrObj.showArray(); //11 22 33 44
arrObj.showArrayType(); //object
arrObj.showLength(); //4
arrObj.setArray(55, 66, 77);
arrObj.showArray(); //11 22 33 44 55 66 77
arrObj.showArrayType(); //object
arrObj.showLength(); //**4**