1 | ;
|
2 |
|
3 | function isMethod(propertyName, value) {
|
4 | return propertyName !== 'constructor' && typeof value === 'function';
|
5 | }
|
6 |
|
7 | module.exports = (obj) => {
|
8 | const propertyNames = Object.getOwnPropertyNames(obj.constructor.prototype);
|
9 | propertyNames.forEach((propertyName) => {
|
10 | const value = obj[propertyName];
|
11 | if (isMethod(propertyName, value)) {
|
12 | obj[propertyName] = value.bind(obj);
|
13 | }
|
14 | });
|
15 | };
|