我试图访问元素的位置X和Y,以类文字(或任何其他可能的方式,如对象文字)创建,以及使用这些属性的方法,访问它们样式。
class ObjectScene {
constructor(element) {
this.element = element;
let posX = this.element.offsetLeft;
let posY = this.element.offsetTop;
this.resetWall = () => {
this.element.style.left = 'unset';
this.element.style.right = '0px';
}
}
}
const wall = new ObjectScene(document.getElementById('wall'));
console.log(wall.posX);

<div class="wall" id="wall"></div>
&#13;
是因为posX和posY还没有引用DOM元素吗?我得到undefined和NaN试图console.log属性。
我这样做是因为我有3个函数使用所有相同的属性,位置,重置位置和类似的东西,但每个都有不同的DOM元素。所以这是我想干代码的一种方式。
答案 0 :(得分:0)
posX
,posY
只存在于构造函数的范围内。实际上,您创建的是变量,而不是对象的属性。
例如,您可以将它们分配给this
,就像使用element
一样,从而正确创建对象的属性。
class ObjectScene {
constructor(element) {
this.element = element;
this.posX = this.element.offsetLeft;
this.posY = this.element.offsetTop;
this.resetWall = () => {
this.element.style.left = 'unset';
this.element.style.right = '0px';
}
}
}
const wall = new ObjectScene(document.getElementById('wall'));
console.log(wall.posX);
&#13;
<div class="wall" id="wall"></div>
&#13;