apply和call的用法
以前对与apply()还有call()一直处于一种我知道这是干什么,但是不知道怎么使用的情况,今天看别人的博客的时候,看到了一点这类知识,感觉有点感觉,现在把新的心得写下来。
A.apply(B,[arr]);
A.call(B,str1,str2...);
这两个的不同之处就在于后面的那个参数类型,apply是数组,call是一个一个的参数。总体意思就是用A的方法替换B 的方法。
我以前也知道是这样的知识点,但是不知道怎么用,现在看了一个例子感觉很有启发性。
// add()函数,将参数相加求和;
function add(a,b,c){
return a + b + c;
}
add(1,2,3) //结果为6;
但是若是要求数组的和呢?这个函数是没办法求数组和的,只能用来求一个一个参数的和;现在这种情况就可以使用apply()方法了;
var arr = [1,2,3];
add.apply(null,arr); // 结果为6
在es6中同样也有方法,利用不定参可以直接求和;
add(...arr); //结果为6
apply和call的用法的更多相关文章
- Apply 与 Call 的用法(简化版)
		Javascript中Apply 与 Call 的用法,这里只作简单的入门说明 function human( name, age ){ this.name = name; this.age = ag ... 
- SQL Server连接查询之Cross Apply和Outer Apply的区别及用法(转载)
		先简单了解下cross apply的语法以及会产生什么样的结果集吧!示例表: SELECT * FROM tableA CROSS APPLY tableB 两张表直接连接,不需要任何的关联条件,产生 ... 
- 详解js中的apply与call的用法
		前言 call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向.call 和 apply二者的作用完全一样,只是接受 ... 
- call(),apply(),bind() 区别和用法
		call call 方法第一个参数是要绑定给this的值,后面传入的是一个参数列表.当第一个参数为null.undefined的时候,默认指向window. var arr = [1, 2, 3, 8 ... 
- js中call、apply、bind的用法
		原文链接:http://www.cnblogs.com/xljzlw/p/3775162.html var zlw = { name: "zlw", sayHello: funct ... 
- js中apply和call的用法 以及apply的妙用 (来自网络)
		apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:数 ... 
- Js中call apply函数以及this用法
		this介绍: C#里this关键字的意义比较确定的.JavaScript的this关键字,随着函数使用场合不同,this的值会发生变化,感觉用法比较混乱,所以,现在是有必要整理一下的时刻了! 总结一 ... 
- call ,apply 和 bind的用法与区别
		作用都是一样的,官方解释:"调用一个对象的一个方法,以另一个对象替换当前对象", 简单来说就是改变当前使用该方法的对象中的this指向: var xw = { name : &qu ... 
- typeof 和 instanceof       apply与call简单用法以及判断数组的坑
		1 typeof 和 instanceof var array = [];平时如果判断一个对象是否为数组,可能你会用 typeof array,但是输出为“object”. typeof 一般只能返回 ... 
- call、apply、bind的用法
		数组追加 //用apply拼接 var arr1=[12,'name:foo',2048]; var arr2=['Joe','Hello']; Array.prototype.push.apply( ... 
随机推荐
- Lamber算法 & SurfaceShader自定义光照
			[SurfaceShader自定义光照] 1.在pragma中添加自定义光照函数名: #pragma surface surf BasicDiffuse 2.实现自定义光照函数.下面就是Lamber ... 
- screen command of linux
			[screen command of linux] 常用键: 补充: Ctrl-a S # split terminal horizon Ctrl-a TAB # switch to ano ... 
- Android中Cursor类的概念和用法[转]
			首页 > 程序开发 > 移动开发 > Android > 正文 Android中Cursor类的概念和用法 2011-09-07 0个评论 收藏 ... 
- [C++] STACK_Principle
			STACK_Principle 
- 4款最受欢迎的Mac原型工具
			原型工具中Wireframe, Mockup和prototype之间的有什么不同? 无论你是一名刚入行的UX/UI设计师,还是入行多年的老手,在制作原型的过程中一定接触或听说过其中很重要的三个原型术语 ... 
- mosquitto配置通过ssl通信
			mosquitto配置通过ssl通信 摘自https://www.cnblogs.com/stin/p/9258211.html 注意项: For openssl >= 1.0.1 the va ... 
- mybatis :xml文件中传入参数和if标签结合使用时要点
			org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflecti ... 
- MySQL 存储过程 -流程控制的使用
			#五.流程控制的使用 #1.IF 使用 create PROCEDURE iftest1() BEGIN DECLARE a int DEFAULT 10; -- IF (a>1 &&a ... 
- C primer 编程练习  (不断更新)
			目前在看<C Primer>,以后会经常在这篇博客里更新课后的编程练习题 第二章:编程练习 2.1 #include <stdio.h> int main(void) { pr ... 
- [GO]gomaxprocs的使用
			package main import ( "runtime" "fmt" ) func main() { n := runtime.GOMAXPROCS()/ ... 
