`
jaychang
  • 浏览: 731571 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

JavaScript高阶函数示例

阅读更多
<html>
	<head>	
		<title>高阶函数示例</title>
		<script>
			Array.prototype.map = function(func){
				var len = this.length;
				var resArray = [];
				for(var i = 0 ; i < len ; i ++){
                                        //func.call()的第一个参数作为call函数体中this的引用,如果call函数第一个
                                        //参数为null或undefined那么this引用则为window,
                                        //double函数的alert(this.location.href);证明了这一点
                                        //this[i]实参则赋给了double函数的x形参
                                        //因此call是可以改变double函数体的this引用值的
					resArray[i] = func.call(null,this[i]);
				}
				return resArray;
			}
                        
			function double(x){
				//alert("arg0="+arguments[0]+",arg1="+arguments[1]);
				alert(this.location.href);
				return x*2;
			}
			function gjhscs(){
				var a = [1,4,5,2];
				var b = a.map(double);
				var c = "";
				for(var i = 0 ; i < b.length ; i ++){
					c += ","+b[i];
				}
				alert(c.substring(1,c.length));
			}
		</script>
	</head>
	<body>
		<input type="button" value="高阶函数测试" onclick="gjhscs();"/>
	</body>
</html>

 对于apply和call两者在作用上是相同的,但两者在参数上有区别的。
对于第一个参数意义都一样,但对第二个参数:
apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。

如 func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1, [var1,var2,var3])

同时使用apply的好处是可以直接将当前函数的arguments对象作为apply的第二个参数传入.

分享到:
评论

相关推荐

    JAVASCRIPT函数之高阶函数.pdf

    在本篇关于JavaScript高阶函数的文档中,我们将会详细探讨JavaScript中的高阶函数概念及其在实际编程中的应用。高阶函数是函数式编程的核心概念之一,在JavaScript中尤为重要,因为JavaScript函数是"一等公民"。 ##...

    JAVASCRIPT函数之高阶函数[文].pdf

    JavaScript中的高阶函数是函数式编程的一个核心特性,它允许函数作为其他函数的参数或返回结果。这种灵活性使得JavaScript能够处理更加复杂的编程任务,尤其是在处理数据操作和异步操作时。接下来,我们将深入探讨高...

    Javascript 高阶函数使用介绍

    在了解JavaScript高阶函数使用之前,首先需要明确什么是高阶函数。在编程中,高阶函数被定义为那些接受函数作为参数或返回函数作为结果的函数。在JavaScript这种弱类型语言中,函数既不对输入的参数类型进行严格定义...

    Javascript中的高阶函数介绍

    接下来,我们通过几个具体的代码示例来详细说明如何在Javascript中使用高阶函数。 1. 高阶函数使用实例 在前面的文档内容中提到了一个简单的例子,我们可以通过一个高阶函数来实现将两个字符串拼接成"Hello,World...

    【JavaScript源代码】vue常用高阶函数及综合实例.docx

    在JavaScript编程中,高阶函数是非常有用的概念,它们可以作为参数传递给其他函数,或者返回一个新的函数。在这个文档中,重点介绍了在Vue.js应用中如何利用数组的高阶函数来简化代码,特别是`filter()`、`map()`和`...

    JavaScript实用小函数(一)

    `Array.prototype.map()`、`filter()`和`reduce()`是常见的高阶函数示例,它们用于处理数组。 3. **闭包**: 闭包是指函数可以访问并操作其自身作用域、外部函数作用域,甚至是全局作用域的变量,即使在其定义的环境...

    JavaScript中的代码示例函数式编程,Manning2016___下载.zip

    在JavaScript中,函数式编程的核心概念包括纯函数、高阶函数、柯里化、函数组合、闭包和不可变数据。这些概念在实际开发中有着广泛的应用,如提高代码可读性、减少副作用、简化并发处理以及提高测试覆盖率。 1. **...

    一本关于JavaScript中函数式编程的书

    在JavaScript中,`map()`、`filter()`和`reduce()`等函数就是常见的高阶函数示例,它们可以用于操作数组,提供了一种抽象和复用代码的方式。 四、函数组合 函数组合是将两个或更多函数串联起来,形成一个新的函数。...

    深入学习JavaScript 高阶函数

    深入学习JavaScript高阶函数是理解JavaScript编程核心概念的关键部分。高阶函数,即Higher-order function,是指能够接受函数作为参数,或返回一个函数的函数。它们在JavaScript中扮演着重要角色,因为它们允许我们...

    JavaScript示例大全,JavaScript,JavaScript示例

    此外,函数式编程的概念也体现在JavaScript中,如高阶函数、闭包和箭头函数,这些都是提高代码效率和简洁性的强大工具。 JavaScript还提供了事件处理机制,使得用户与网页的交互变得可能。例如,通过...

    JS高阶函数原理与用法实例分析

    在JavaScript中,数组的内置方法如`map`、`filter`和`reduce`都是典型的高阶函数示例。它们接受一个函数作为参数,这个函数定义了对数组元素的操作。 `map`方法遍历数组的每个元素,将每个元素传递给提供的回调函数...

    Javascript权威指南(含示例源码)

    函数式编程在JavaScript中占有重要地位,书中详细阐述了高阶函数、函数组合、函数式编程风格,以及如何利用Array.prototype上的方法如map、reduce和filter等实现数组操作。这些技巧能够帮助开发者写出更简洁、可读性...

    关于JavaScript中高阶函数的魅力详解

    高阶函数:英文叫Higher-order function。JavaScript的函数其实都指向某个变量。下面这篇文章主要给大家介绍了关于JavaScript中高阶函数的魅力,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

    swift 常用高阶函数分享

    在Swift中,高阶函数是函数式编程的核心工具之一,它们允许开发者以更简洁、可读性更强的方式处理集合数据。本文将深入探讨Swift中的三个常用高阶函数:`map`、`filter`和`reduce`,以及它们在处理数组等容器时的...

    javaScript函数式编程

    全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、类编程。除此之外,附录中还介绍了更多...

    JavaScript函数式编程

    在JavaScript中,`map`、`filter`、`reduce`等方法都是高阶函数的例子,它们用于操作数组,而`compose`和`curry`则用于组合和封装函数。 4. 闭包 闭包是函数能够访问其词法作用域内的变量,即使在其定义的作用域...

    JavaScript回调函数面试题.zip

    高阶函数是可以接受一个或多个函数作为参数,或者返回一个新的函数的函数。它们常用于组合函数、记忆化、柯里化等,同时也常常与回调函数结合使用,以提高代码的灵活性和可重用性。 **6. 回调函数的局限性** 虽然...

Global site tag (gtag.js) - Google Analytics