リストから「前」と「次」の画像を表示できる単純なオブジェクト「ブラウザ」を定義しています。
function Browser(image, elements) {
this.current = 0;
this.image = image;
this.elements = elements;
}
Browser.prototype.next = function () {
if (++this.current >= this.elements.length) {
this.current = 0;
}
return this.show(this.current);
};
Browser.prototype.prev = function () {
if (--this.current < 0) {
this.current = this.elements.length - 1;
}
return this.show(this.current);
};
Browser.prototype.show = function (current) {
this.image.src = this.elements[current];
return false;
};
このコードは JSlint にほぼ好まれています。しかし、「高度な最適化」の Google Closure Compiler はそれをコンパイルしません。
それは言います:
JSC_USED_GLOBAL_THIS: dangerous use of the global this object at line 3 character 0
this.current = 0;
JSC_USED_GLOBAL_THIS: dangerous use of the global this object at line 4 character 0
this.image = image;
JSC_USED_GLOBAL_THIS: dangerous use of the global this object at line 5 character 0
this.elements = elements;
これは、javascript oop を理解していないことを示しています。
私は何を間違っていますか?