使一个函数作为另外一个函数的参数来运行的javascript代码_javascript技巧

先看一段代码:

复制代码 代码如下:

var a = [1,2,3]; 
function map(fn, a, init){ 
var s = init; 
for (i = 0; i < a.length; i++){ 
s = fn(s,a[i]); 

return s; 

alert(map(function(x,y){return x+y;}, a , 0)) //把数组的各个元素相加求和 
alert(map(function(x,y){return x+y;}, a , "")) //把数组的各个元素连接起来 

map 函数定义了对 a 数组遍历一次,但具体对各个元素执行何种操作,却没有定义,需要从其第一个参数来定义。

这种方法能提高代码的重用性。不错。

时间: 2024-09-13 23:02:49

使一个函数作为另外一个函数的参数来运行的javascript代码_javascript技巧的相关文章

stream.js 一个很小、完全独立的Javascript类库_javascript技巧

<script src='stream-min.js'></script> 下载 stream.js 2Kb minified streams是什么? Streams 是一个操作简单的数据结构,很像数组或链接表,但附加了一些非凡的能力. 它们有什么特别之处? 跟数组不一样,streams是一个有魔法的数据结构.它可以装载无穷多的元素.是的,你没听错.他的这种魔力来自于具有延后(lazily)执行的能力.这简单的术语完全能表明它们可以加载无穷多的元素. 入门 如果你愿意花10分钟的时

setTimeout函数兼容各主流浏览器运行执行效果实例_javascript技巧

目前这个setTimeout可以很好地兼容IE6,7,8,9以及谷歌浏览器Chrome,火狐浏览器FireFox,苹果浏览器Safari,Opera. setTimeout是一个很不错的函数,网站页面前端工程师经常将其用于几秒后执行的动作.setTimeout这个JS内置函数其用法也很简单,下面是setTimeout()的函数说明以及用法详解和实例.示例代码: setTimeout()的作用是指定在多少毫秒后执行一个JS函数或者表达式代码 setTimeout的用法.语法.参数:setTimeo

JS函数多个参数默认值指定方法分析_javascript技巧

本文实例讲述了JS函数多个参数默认值指定方法.分享给大家供大家参考,具体如下: 函数有一个参数时,以往这样定义(参数为p1): function mfun(p1){ - } 当需要为p1设定一个默认值时 function mfun(p1){ if(p1===undefined) p1=5; //默认值设为5 - } 当函数需要2个参数时,以前习惯这样写 function mfun(p1,p2){-} 后来发现完全不需要这样写,js函数甚至不需要在括弧内预设参数名,可以用一下方式传入任意多个参数自

JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)_javascript技巧

在项目开发过程中,也许你会遇这样的情况. 在某一Js文件中需要完成某一功能,但这一功能的大部分代码在另外一个Js文件中已经完成了,自己只需要调用这个方法再加上几句代码就可以实现所需的功能. 我们知道,在html中,利用<script language="javascript" type="text/javascript" src="./script.js"></script>引入的两个js是不可以相互调用的.那么该如何解决

模仿JQuery.extend函数扩展自己对象的js代码_javascript技巧

但在写的过程中发现,如果要在之前写好的对象中添加新的静态方法或实例方法,要修改原有的对象结构,于是查看了jquery了extend方法,果然extend方法支持了jq的半边天,拿来主义,给自己的对象做扩张用. 下面进入正题: 假如有以下一个对象 复制代码 代码如下: var MyMath = { //加法 Add: function(a, b){ return a + b; }, //减法 Sub: function(a, b){ return a - b; } } 对象名MyMath,有两个静

node.js 一个简单的页面输出实现代码_javascript技巧

安装过程就不说了.如果成功是能使用node的命令.node.js调试是非常方便的.每种后台语言都有一个向那个黑黢黢的控制台团输出语用的命令.node.js沿用FF那套东西,也就是console对象与其方法.我们首先建一个example.js文件,内容如下,然后在控制台打开它. 复制代码 代码如下: console.log("hello node.js") for(var i in console){ console.log(i+" "+console[i]) } n

javascript bind绑定函数代码_javascript技巧

具体结论可参见<javascript下动态this与动态绑定实例代码>.本文专注设计一个无侵入的绑定函数. [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 基于不扩展原生对象的原则,弄了这个bind函数(dom为作用域),用法与Prototype框架的bind差不多. 复制代码 代码如下: dom.bind = function(fn,context){ //第二个参数如果你喜欢的话,也可以改为thisObject,scope, //总之,是一个新的作用域对象 if (argume

JavaScript中cookie工具函数封装的示例代码_javascript技巧

一. 语法 1.1 获取当前页面的所有cookie: var allCookies = document.cookie; allCookies 是一个字符串,其中包含了以分号分隔的cookie列表字符串 (即 key=value 键值对). 1.2 写一个新cookie: document.cookie = updatedCookie; updatedCookie是一个键值对形式的字符串.只能用这个方法一次设置或更新一个cookie,而且写入并不是覆盖,而是添加.例如: document.coo

通过javascript的匿名函数来分析几段简单有趣的代码_javascript技巧

1.简单形式的封装调用 复制代码 代码如下: var userName = function() { return "jeff wong" } (); alert(userName); 上面的代码确实简单,我们可以逐步分解成下面的写法: 复制代码 代码如下: var anonymousFunc = function() { return "jeff wong" }; //匿名函数 var name = anonymousFunc(); //执行该函数 返回人名 al