ObjectManipulator.js 993 B

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * @author Kai Salmen / https://kaisalmen.de
  3. * Development repository: https://github.com/kaisalmen/WWOBJLoader
  4. */
  5. const ObjectManipulator = {
  6. /**
  7. * Applies values from parameter object via set functions or via direct assignment.
  8. *
  9. * @param {Object} objToAlter The objToAlter instance
  10. * @param {Object} params The parameter object
  11. */
  12. applyProperties: function ( objToAlter, params, forceCreation ) {
  13. // fast-fail
  14. if ( objToAlter === undefined || objToAlter === null || params === undefined || params === null ) return;
  15. var property, funcName, values;
  16. for ( property in params ) {
  17. funcName = 'set' + property.substring( 0, 1 ).toLocaleUpperCase() + property.substring( 1 );
  18. values = params[ property ];
  19. if ( typeof objToAlter[ funcName ] === 'function' ) {
  20. objToAlter[ funcName ]( values );
  21. } else if ( objToAlter.hasOwnProperty( property ) || forceCreation ) {
  22. objToAlter[ property ] = values;
  23. }
  24. }
  25. }
  26. };
  27. export { ObjectManipulator }