Overriding a variable declared in an outer scope can strongly impact the readability, and therefore the maintainability, of a piece of code. Further, it could lead maintainers to introduce bugs because they think they're using one variable but are really using another.
show: function(point, element) {
if (!this.drops.length) return;
var drop, affected = [];
this.drops.each( function(drop) { // Non-Compliant; defines a new 'drop' parameter
if(Droppables.isAffected(point, element, drop))
affected.push(drop);
});
show: function(point, element) {
if (!this.drops.length) return;
var drop, affected = [];
this.drops.each( function(aDrop) {
if(Droppables.isAffected(point, element, aDrop))
affected.push(aDrop);
});