⑴ call和apply方法的区别
call方法:语法:call(thisObj,Object)定义:调用一个对象的一个方法,以另一个对象替换当前对象。说明:call方法可以用来代替另一个对象调用一个方法。call方法可将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象。
⑵ call 和 apply 的区别
JavaScript中的每一个function对象都会有call和apply方法
定义:
apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。
call:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法
从定义中可以看出,call和apply都是调用一个对象的一个方法,用另一个对象替换当前对象。而不同之处在于传递的参数,apply最多只能有两个参数——新this对象和一个数组argArray,如果arg不是数组则会报错TypeError;
call则可以传递多个参数,第一个参数和apply一样,是用来替换的对象,后边是参数列表。
⑶ 前端为什么用call方法
因为是公用的方法。
js中call是调用一个对象的一个方法,以另一个对象替换当前对象。call方法是Function类原型上的一个公共方法,所以要用这个。
⑷ Javascript中call和apply的区别与详解
call()方法
用于操作this的函数方法是call(),它可以指定的this值和参数来执行函数。call()的第一个参数指定了函数执行时this的值,其后的所有参数都是需要被传入函数的参数。
apply()方法
apply()是你可以用来操作this的第二个函数方法。apply()的工作方式和call()完全一样,但它只能接受两个参数: this 的值和一个数组或者类似数组的对象,内含需要被传入函数的参数(也就是说你可以把arguments对象作为apply()的第二个参数)。你不需要像使用call()那样一个个指定参数,而是可以轻松传递整个数组给apply()。除此之外,call()和apply()表现得完全一样。
bind()方法
改变this的第三个函数方法是bind()。ECMAScript 5中新加的这个方法和之前那两个颇有不同。按惯例,bind()的第一个参数是要传给新函数的this的值。其他所有参数代表需要被永久设置在新函数中的命名参数。你可以在之后继续设置任何非永久参数。
资料来源:
HTML5学堂
决胜前端
⑸ CALL在编程里如何解释
是汇编语言吧!
call指令是调用子程序,后面紧跟的应该是子程序名或者过程名。
如:call di 和 call dword ptr [di]
call di是说所调用的子程序的入口偏移地址=di的值,段地址CS不变(段内调用);
call dword ptr [di]是说所调用的子程序的入口的“偏移地址”存放在内存单元DS:{di]中,而其“段地址”则存在DS:[di+2]中,这是段间调用。
⑹ call和apply的区别 阮一峰
call方法:
语法:call(thisObj,Object)
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
apply方法:
语法:apply(thisObj,[argArray])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
⑺ 关于javascript中apply和call方法的区别
apply: 以指定的this值和参数(参数以数组形式传入)调用某个函数
call: 以指定的this值和若干个指定的参数值调用某个函数或方法
call方法的作用和apply方法类似,只有一个区别,就是call接受的是若干个参数的列表,而apply接受的是一个包含多个参数的数组。
详细说明、示例参考下面的链接:
apply:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
call :
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/call
⑻ 在JS中,call()方法和apply()方法到底该怎么应用
1.apply与call是更改对象的内部指针,即改变对象的this指向的内容;
2.call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。
⑼ 前端为什么用call方法
因为CALL指令用于调用其他函数。
可以调用函数,可通过call()方法来调用demo.call()可以直接输出内容。all的功能就是调用子程序。call指令是计算机转移到调用的子程序。
call()方法内的第一个参数代表this指向的函数,后面紧跟的参数为函数原有的形参demo.call(demo1,10,20)。
⑽ 对于javascript 中的call函数的理解问题
标准解释:call方法是将一个对象的方法在另一个对象的上下文环境中执行。
详细解释:你的例子中,myFun.call(myObject, 13, 3, 95)执行时是这样的:
1. 调用myFun函数
2. 将13,3,95三个参数传递给它(你的myFun方法中没有处理这些参数的代码,所以传了也没有用)
3. 将myFun函数中的所有this用myObject代替(同样,你的myFun函数中没有使用this,所以执行结果和直接调用myFun()是一样的)
修改一下你的例子,帮助你理解:
function myFun(p1, p2, p3)
{
this.para1 = p1;
this.para2 = p2;
this.para3 = p3;
}
var myObject = new Object();
alert(myObject.para1) //显示undefined
myFun.call(myObject,13,3,95); /*执行的时候,myFun方法中的this全部用myObject对象代替,所以在这个例子中,执行myFun方法和直接写下面的语句效果是一样的:
myObject.para1 = 13;
myObject.para2 = 3;
myObject.para3 = 95;
*/
alert(myObject.para1) //显示13