brandonmcconnell icon

extend function

brandonmcconnell | PRO | 01/27/23 08:56:56 PM UTC (Edited) | 0 ⭐ | 1128 👁️ | Never ⏰ | []
JavaScript |

710 B

|

Software

|

0 👍

/

0 👎

// Function
 
function extend(obj) {
  class Extended extends obj.constructor {
    constructor(obj) {
      super(...(Array.isArray(obj) ? obj : [obj]));
      this.$ = 'something';
    }
  }
  return new Extended(obj);
}
 
// Examples
 
const originalString = 'test';
const extendedString = extend(originalString);
 
String(extendedString) === originalString
 
extendedString.toString()
extendedString.valueOf()
extendedString.$
extendedString.constructor.prototype
 
const originalArray = [4, 5, 6];
const extendedArray = extend(originalArray);
 
JSON.stringify(extendedArray) === JSON.stringify(originalArray)
 
extendedArray.push(7)
extendedArray.valueOf()
extendedArray.toString()
extendedArray.$

Comments