code: function each(collection, callback, scope) {
  		if ("[object Object]" === Object.prototype.toString.call(collection)) {
  			for (var d in collection) {
  				if (Object.prototype.hasOwnProperty.call(collection, d)) {
  					callback.call(scope, d, collection[d]);
  				}
  			}
  		} else {
  			for (var e = 0, f = collection.length; e < f; e++) {
  				callback.call(scope, e, collection[e]);
  			}
  		}
  	}
docs: Iterator helper
  @param  {(Array|Object)}   collection Any object, array or array-like collection.
  @param  {Function} callback   The callback function
  @param  {Object}   scope      Change the value of this
  @return {Void}