call()与apply()的区别

call(),函数的一个方法,fn.call()相当于fn();可以通过call(1,2,3...)来改变函数里this的指向,1指定this的obj,若为空,this本该指向哪个obj就指向哪个obj;第二个参数开始是原fn的参数列表;主要用于解决attachEvent事件所绑定函数的this指向,因attachEvent默认是指向window的;

apply(),除了参数形式其它与call相同。后面的参数列表用的[]形式。

时间: 2024-10-13 01:00:04

call()与apply()的区别的相关文章

call和apply的区别

call和apply的区别: 它们各自的定义:   apply:应用某一对象的一个方法,用另一个对象替换当前对象.例如:B.apply(A, arguments);即A对象应用B对象的方法. call:调用一个对象的一个方法,以另一个对象替换当前对象.例如:B.call(A, args1,args2);即A对象调用B对象的方法. 它们的共同之处: 都"可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象". 它们的不同之处: app

javascript 中的call 和apply的区别

一直对call 和apply很模糊,今天终于搞懂了,分享出来给大家. apply call bind方法 var ZS = { name:"张三", sex : "男", age : "25岁", say :function(){ console.log(this.name+","+this.sex+",今年"+this.age) } } var LS = { name:"李四", se

bind、call、apply的区别与实现

1.简单说一下bind.call.apply的区别 三者都是用于改变函数体内this的指向,但是bind与apply和call的最大的区别是:bind不会立即调用,而是返回一个新函数,称为绑定函数,其内的this指向为创建它时传入bind的第一个参数,而传入bind的第二个及以后的参数作为原函数的参数来调用原函数. var obj = {}; function test() { console.log(this === obj); } test(); //false var testObj =

bind、call、apply的区别与实现原理

1.简单说一下bind.call.apply的区别 三者都是用于改变函数体内this的指向,但是bind与apply和call的最大的区别是:bind不会立即调用,而是返回一个新函数,称为绑定函数,其内的this指向为创建它时传入bind的第一个参数,而传入bind的第二个及以后的参数作为原函数的参数来调用原函数. var obj = {}; function test() { console.log(this === obj); } test(); //false var testObj =

js中的call,apply,bind区别

在JavaScript中,call.apply和bind是Function对象自带的三个方法,这三个方法的主要作用是改变函数中的this指向. call.apply.bind方法的共同点和区别:apply . call .bind 三者都是用来改变函数的this对象的指向的:apply . call .bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文(函数的每次调用都会拥有一个特殊值--本次调用的上下文(context)--这就是this关键字的值.):apply . ca

SQLServer连接查询之Cross Apply和Outer Apply的区别及用法

https://blog.csdn.net/wikey_zhang/article/details/77480118 先简单了解下cross apply的语法以及会产生什么样的结果集吧! 示例表: SELECT * FROM tableA CROSS APPLY tableB 两张表直接连接,不需要任何的关联条件,产生的结果就是这两张表的笛卡儿集,在这里和上一篇帖子讲的cross join交叉连接的结果集是一样的 相当于:select * from tableA,tableB 与之对应的还有Ou

call和apply的区别及用法

ECAMScript3给Function的原型定义了两个方法,Function.prototype.call 和Function.prototype.apply. 区别仅在于传入的参数形式不同. var func=function(a,b,c){ console.log([a,b,c]); } func.apply(null,[1,2,3]);//输出[1,2,3] func.call(null,1,2,3);//输出[1,2,3] 用法: 1.改变this指向.call和apply最常见的用途

call()函数、apply()函数区别与意义

使用apply函数或call函数的意义: 在面对对象编程过程中,当A对象调用其他对象而非A对象方法是,该方法中所有的this引用都指向此方法所在的对象,而不是当前代码的上下文即A对象, 为了保持this的原来的指向(即A对象),则需要使用apply或call函数. apply()和call()的区别: apply和call,它们的作用都是将函数绑定到另外一个对象上去运行 原型分别是 Function.prototype.apply(thisArg,argArray); Function.prot

JavaScript学习点滴 call、apply的区别

对于apply和call两者在作用上是相同的,但两者在参数上有区别的. 1.call call 方法 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj 可选项.将被用作当前对象的对象. arg1, arg2, , argN 可选项.将被传递方法参数序列. 说明 call 方法可以用来代替另一个对象调用一个方法.call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj

详解 arguments, callee, caller, call, apply的区别

1.一个完整的JavaScript应由三部分组成:核心(ECMAScript),文档对象模型(DOM),浏览器对象模型(BOM):2.ECMAScript中的参数在内部使用一个类数组来表示的,函数接收到的始终是这个类数组,在函数体内可以通过arguments对象来访问这个参数数组,arguments对象其实是一个类数组,不是Array的实例,香港虚拟主机,可以通过方括号语法来访问,同时也可以使用length方法: 关于arguments,它的值永远与对应命名参数的值保持同步,因为argument