Имам javascript кода по-долу. В Chrome, Firefox, Android емулатор, Firefox на Samsung Galaxy S (Gingerbread 2.3.3) и Safari на iPod работи добре. В родния браузър на Samsung Galaxy S не го прави.
Кодът създава обект и тества стойностите на обекта. Първият път, когато създава обектите, е правилно. При второто създаване на обекта стойностите не са правилни.
Това грешка в Javascript или V8 или устройството ли е? Как бихте го разрешили?
var Padding = function(pleft, ptop, pright, pbottom) {
this.top = 20;
this.left = 1;
this.right = 0;
this.bottom = 0;
this.left = pleft;
this.top = ptop;
this.right = pright;
this.bottom = pbottom;
};
function testPadding() {
var p;
p = new Padding(91, 92, 93, 94);
alert(p.left.toString() + "," + p.top.toString() + "," + p.right.toString() + "," + p.bottom.toString());
}
testPadding(); // 91,92,93,94 - correct
testPadding(); // 1,20,93,0 - should be 91,92,93,94
testPadding(); // 1,20,93,0 - should be 91,92,93,94
РЕДАКТИРАНЕ: Открих защо работи в емулатора. Емулаторът използва различен javascript двигател. Той използва JSC вместо V8. Има кодов фрагмент в http://code.google.com/p/android/issues/detail?id=12987, който ви помага да разберете какъв двигател използва. Емулаторът използва JSC, Samsung Galaxy S използва V8.