`
accpxudajian
  • 浏览: 460109 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

apply应用小结

 
阅读更多

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>apply小结</title>
<script src="JSLogger.js" debug="true"></script>
<script language="javascript">
		var tom = {Name:'tom',Age:23};
		var cat = {Name:'cat',Age:32};
        function print(message){
			JSLogger.log("这个动物的名字叫:"+this.Name+",年龄为:"+this.Age+",message = "+message);
        }
		print("你好");//这个动物的名字叫:undefined,年龄为:undefined,message = 你好

		//print.apply(tom,args) 表示将print的上下文对象改为tom,传递args参数并执行print方法。
		print.apply(tom,["你好"]);//这个动物的名字叫:tom,年龄为:23,message = 你好
		
		//print.apply(cat,args) 表示将print的上下文对象改为cat,传递args参数并执行print方法。
		print.apply(cat,["你好"]);//这个动物的名字叫:cat,年龄为:32,message = 你好
		
		var arr1 = [1,3,5,66,2];
		//apply(null,args) 表示print上下文对象不变,只是传递参数arr1给max方法,并执行max方法。
		JSLogger.log("arr1中最大的是:"+Math.max.apply(null,arr1));//arr1中最大的是:66
		//
		function add(a,b){
			JSLogger.log("a + b ="+(a+b));
		}
		//add.apply(null,args)表示add方法的上下文对象不变,将args参数传递给add方法
		add.apply(null,[1,3,4]);//a + b =4	
		
		var arr2 = ["a","b","c"];
		//arr2.push(arr1);//
		//JSLogger.log("arr2 = "+arr2);//arr2 = a,b,c [object]  实际上将arr1最为一个对象插入到arr2中了,即arr2[3] = arr1;
		[].push.apply(arr1,arr2);//使用自己本身最为上下文对象,并将args参数对象传递给自己,然后执行push方法。
		//说明:上边写成arr1.push(arr1,arr2) or arr2.push(arr1,arr2) or Array.prototype.push(arr1,arr2)都是一样的,因为最终的上下文对象都是arr1,
		//		所以采用最简单的一个形式就是使用空数组。
		JSLogger.log("arr1  = "+arr1);//arr1 = 1,3,5,66,2,a,b,c
      
</script>
</head>
<body>
</body>
</html>
 
分享到:
评论

相关推荐

    js中call与apply的用法小结

    本文将深入探讨这两种方法的用法及其在实际编程中的应用。 ### 1. `call` 的基本用法 `call` 方法的语法如下: ```javascript function.call(thisArg[, arg1, arg2, ...]); ``` - `thisArg`:指定函数执行时的`...

    SpringSide3的PropertyFilter条件过滤应用小结

    标题“SpringSide3的PropertyFilter条件过滤应用小结”指的是对SpringSide项目中PropertyFilter类的一个功能总结,这个类主要用于实现基于属性的条件过滤。在Java Web开发中,尤其是在使用Spring框架时,我们经常...

    JavaScript中apply方法的应用技巧小结

    在本文中,我们将深入探讨`apply`的一些应用技巧,并通过示例了解如何使用它来实现`call`、`bind`功能,以及进行函数的柯里化和反柯里化操作。同时,还将介绍如何为数组添加一个`max`方法。 首先,`apply`方法是...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    1.11 小结 36 第2章 xml名称空间 38 2.1 声明名称空间 38 2.2 名称空间在元素和属性中的运用 39 2.2.1 名称空间在元素中的运用 39 2.2.2 默认名称空间 41 2.2.3 名称空间在属性中的运用 42 2.3 名称空间和dtd...

    python多进程控制学习小结

    `Pool`允许我们指定最大并发进程数,并提供`apply_async`或`map`方法来异步执行任务。此外,为了确保所有任务都被处理,即使某些任务执行时间较长,我们可以使用`join`来等待所有进程完成。 总的来说,Python的`...

    SQL Server2005基础教程

    作者 迪尤逊 出版社 人民邮电出版社 本书重点阐述了SQL Server 2005的基础知识,前半部分以建立一个金融数据库系统为主线,从最基础的收集信息入手,一步步地引导读者学会如何保证数据库的安全,创建表... 14.6 小结

    ExtJSWeb应用程序开发指南(第2版)

    1.7 本章小结 第2章 开始ExtJS之旅 2.1 认识ExtJS的开发包 2.2 也从Helloworld开始 2.3 ExtJS中的基本概念 2.4 非常有用的开发工具 2.4.1 开发插件spket 2.4.2 FullSource 2.4.3 MicrosoftScriptDebugger ...

    McGraw C++程序调试实用手册

    内容简介 · · · · · ·  本书作为有关 Visual C++ Debugger的专著,是一本非常难得的好书。书中深入地分析了开发不包含逻辑和语法错误的代码技巧以及调试程序的基本原理,介绍了开发和调试命令行...17.3 小结

    setTimeout学习小结

    **setTimeout学习小结** 在JavaScript中,`setTimeout`是一个非常重要的异步编程工具,用于在指定的毫秒数后调用一个函数或者执行一段代码。本文主要围绕`setTimeout`的原理、`setTimeout(function(){..},0)`的意义...

    Altium Designer 09中全局编辑功能的应用

    #### 小结 通过上述步骤,我们可以清晰地了解到如何在Altium Designer 09中利用全局编辑功能来批量隐藏电路图中具有相同属性的元件注释。这种方法不仅节省了大量手动修改的时间,而且使得电路原理图更加简洁明了,...

    创建Android库的方法及Android .aar文件用法小结

    如果需要将一个现有应用模块转换为库模块,只需修改其`build.gradle`文件中的插件声明,将`apply plugin: 'com.android.application'`改为`apply plugin: 'com.android.library'`,然后同步项目。 生成AAR文件的...

    Pandas之groupby( )用法笔记小结

    1. `apply()`: 这个函数接收一个函数,该函数将应用于每个分组后的子DataFrame。`apply()`会将整个子DataFrame传递给函数,因此我们可以对整个数据进行自定义操作。在例子中,`apply(lambda x: print(x))`打印出每个...

Global site tag (gtag.js) - Google Analytics