function readAccessor(accessor) {

		if (isFunction(accessor)) {
			// Accessor is function: return invoked value.
			return accessor();
		}
		else if (isObject(accessor)) {
			// Accessor is object/array: return copy with all attributes read.
			accessor = _.clone(accessor);

			_.each(accessor, function(value, key) {
				accessor[ key ] = readAccessor(value);
			});
		}
		// return formatted value, or pass through primitives:
		return accessor;
	}
// This function unpacks an accessor and returns its underlying value(s).
This function unpacks an accessor and returns its underlying value(s).
This function unpacks an accessor and returns its underlying value ( s ) .
function readAccessor(accessor) {
		if (isFunction(accessor)) {
			return accessor();
		}
		else if (isObject(accessor)) {
			accessor = _.clone(accessor);
			_.each(accessor, function(value, key) {
				accessor[ key ] = readAccessor(value);
			});
		}
		return accessor;
	}
function readAccessor ( accessor ) { if ( isFunction ( accessor ) ) { return accessor ( ) ; } else if ( isObject ( accessor ) ) { accessor = _ . clone ( accessor ) ; _ . each ( accessor , function ( value , key ) { accessor [ key ] = readAccessor ( value ) ; } ) ; } return accessor ; }
This function unpacks an accessor and returns its underlying value(s).
This function unpacks an accessor and returns its underlying value ( s ) .
// Accessor is function: return invoked value. // Accessor is object/array: return copy with all attributes read. // return formatted value, or pass through primitives: