JSHint says "Possible strict violation" because you are using this
inside something that, as far as it can tell, is not a method.
In non-strict mode, calling gotoPage(5)
would bind this
to the global object (window
in the browser). In strict mode, this
would be undefined
, and you would get in trouble.
Presumably, you mean to call this function with a bound this
context, e.g. gotoPage.bind(myObj)(5)
or gotoPage.call(myObj, 5)
. If so, you can ignore JSHint, as you will not generate any errors. But, it is telling you that your code is unclear to anyone reading it, because using this
inside of something that is not obviously a method is quite confusing. It would be better to simply pass the object as a parameter:
function gotoPage(sorter, s) {
if (s <= sorter.d && s > 0) {
sorter.g = s;
sorter.page((s - 1) * sorter.p.size);
}
}
function pageChange(event, sorter) {
var dd = event.currentTarget;
gotoPage(sorter, dd[dd.selectedIndex].value);
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…