fmd.js
Version:
another module writing system
69 lines (54 loc) • 1.77 kB
JavaScript
/**
* @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;
} );