次のコードを実行しようとすると、「未定義」エラーが発生します。それはライン上で起こりthis.xPositionForPageAtIndex(selectedPageNumber)
ます。ログに記録しようとするとthis
、関数を除くすべてのインスタンスプロパティがそこにあります。
function Gallery(div) {
this.count = 5;
this.pageWidth = 500;
this.selectedPage = 1;
this.xPositionForPageAtIndex = function(pageIndex) {
if (pageIndex < 1 || pageIndex > this.count) {
return 0.0;
}
return (pageIndex - 1) * this.pageWidth;
}
}
Gallery.prototype = {
set selectedPage(selectedPageNumber) {
var page = this.pages[((selectedPageNumber) + 1)];
if (!page.classList.contains("animate")) {
page.classList.add("animate");
}
if (!page.classList.contains("final")) {
page.classList.add("final");
}
console.log(this);
this.binder.setAttribute("-webkit-transform", "translateX(" -this.xPositionForPageAtIndex(selectedPageNumber) + "px)");
this.selectedPage = page;
}
}
私はJavascriptOOPに少し慣れていませんが、この答えを適切に調査するのに十分な用語を本当に知っているとは思いません。