Reinstating method bindings

This commit is contained in:
Francisco Hodge
2019-03-06 20:22:09 -05:00
parent adc1db7a7f
commit ae1436a52d
2 changed files with 16 additions and 36 deletions
+15 -9
View File
@@ -14,15 +14,7 @@ class Utilities {
/**
* Bindings
*/
this.getButtonClass = this.getButtonClass.bind(this);
this.getButtonDisplayName = this.getButtonDisplayName.bind(this);
this.getUpdatedInput = this.getUpdatedInput.bind(this);
this.updateCaretPos = this.updateCaretPos.bind(this);
this.updateCaretPosAction = this.updateCaretPosAction.bind(this);
this.isMaxLengthReached = this.isMaxLengthReached.bind(this);
this.camelCase = this.camelCase.bind(this);
this.countInArray = this.countInArray.bind(this);
this.isTouchDevice = this.isTouchDevice.bind(this);
Utilities.bindMethods(Utilities, this);
}
/**
@@ -380,6 +372,20 @@ class Utilities {
return "ontouchstart" in window || navigator.maxTouchPoints;
}
/**
* Bind all methods in a given class
*/
static bindMethods(myClass, instance) {
for (let myMethod of Object.getOwnPropertyNames(myClass.prototype)) {
let excludeMethod =
myMethod === "constructor" || myMethod === "bindMethods";
if (!excludeMethod) {
instance[myMethod] = instance[myMethod].bind(instance);
}
}
}
/**
* Transforms an arbitrary string to camelCase
*