UNPKG

fmd.js

Version:

another module writing system

69 lines (54 loc) 1.77 kB
/** * @module fmd/lang * @author Edgar <mail@edgar.im> * @version v0.2 * @date 131009 * */ fmd( 'lang', function(){ 'use strict'; var toString = {}.toString, AP = Array.prototype; var lang = { isFunction: function( it ){ return toString.call( it ) === '[object Function]'; }, isArray: Array.isArray || function( it ){ return toString.call( it ) === '[object Array]'; }, isString: function( it ){ return typeof it === 'string'; }, forEach: AP.forEach ? function( arr, fn, context ){ arr.forEach( fn, context ); } : function( arr, fn, context ){ for ( var i = 0, l = arr.length; i < l; i++ ){ fn.call( context, arr[i], i, arr ); } }, map: AP.map ? function( arr, fn, context ){ return arr.map( fn, context ); } : function( arr, fn, context ){ var ret = []; lang.forEach( arr, function( item, i, arr ){ ret.push( fn.call( context, item, i, arr ) ); } ); return ret; }, inArray: AP.indexOf ? function( arr, item ){ return arr.indexOf( item ); } : function( arr, item ){ for ( var i = 0, l = arr.length; i < l; i++ ){ if ( arr[i] === item ){ return i; } } return -1; } }; return lang; } );