クラスのオブジェクト(ピクセル)を配列に追加したいだけです。
export class Pixel {
constructor(x: number, y: number) {}
}
クラスには次の属性があります。
pixels: Pixel[] = [];
次のコードは論理的に見えますが、実際のオブジェクトを配列ピクセルにプッシュしません。
this.pixels.Push(new Pixel(x, y));
これだけが機能します:
var p = {x:x, y:y};
this.pixels.Push(p);
上の文が機能しない理由を誰か説明してもらえますか?
例が実際のコードを表している場合、問題はPush
にありません。コンストラクターが何もしないということです。
x
およびy
メンバーを宣言して初期化する必要があります。
明示的に:
export class Pixel {
public x: number;
public y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
}
または暗黙的に:
export class Pixel {
constructor(public x: number, public y: number) {}
}
class PushObjects {
testMethod(): Array<number> {
//declaration and initialisation of array onject
var objs: number[] = [1,2,3,4,5,7];
//Push the elements into the array object
objs.Push(100);
//pop the elements from the array
objs.pop();
return objs;
}
}
let pushObj = new PushObjects();
//create the button element from the dom object
let btn = document.createElement('button');
//set the text value of the button
btn.textContent = "Click here";
//button click event
btn.onclick = function () {
alert(pushObj.testMethod());
}
document.body.appendChild(btn);