У меня есть переменная в конструкторе JavaScript, которая, кажется, установлена на правильное значение при переходе через точки останова.Однако при запуске без точек останова переменная (которая должна быть массивом, который я ей предоставляю) в консоли выглядит как пустой массив.Я не знаю, используется ли свойство get / set прототипа, как описано здесь .Кроме того, я работаю над webkit, поэтому, если кто-то может помочь мне объяснить, почему он там не работает, я был бы признателен.Спасибо!
function Box(inElement){
var self = this;
this.element = inElement;
this.boxes = (function () {
var boxes = [];
for (var i = 0; i < inElement.childNodes.length; ++i) {
if (3 !== inElement.childNodes[i].nodeType) {
boxes.push(inElement.childNodes[i]);
}
}
return boxes;
})();
this.rotation = [-40,-20,0,20,40];
}
Box.prototype =
{
get rotation(){
return this._rotation;
},
set rotation(rotArray){
console.log('rotArray');
console.log(rotArray);
var thisrot;
this._rotation = rotArray;
for(var i=0; i<this.boxes.length; i++){
thisrot = rotArray.shift();
this.boxes[i].style.webkitTransform = 'rotateY(' + thisrot + 'deg) translateZ(170px)';
}
}
}
function loaded()
{
new Box(document.getElementById('area'));
}
window.addEventListener('load',loaded, true);
Итак, после некоторой путаницы я обнаружил, что box.push (inElement.childnodes [i] - проблемная строка. Когда закомментировано, значение получается ожидаемым.