
正文
call函数js,call函数的用法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
javascript中apply,call和bind的区别
1、三者区别:apply:应用某一对象的一个方法,用另一个对象替换当前对象 最多只能有两个参数——新this对象和一个数组 argArray。
2、bind是返回对应函数,便于稍后调用;apply、call则是立即调用。
3、所以从作用上讲,其实apply和call是一样的,他们和bind的区别就是bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用 。
4、apply和call功能一样,只是传入的参数列表形式不同,其中 thisArg 是你想指定的上下文,他可以是任何一个 JavaScript 对象(JavaScript 中一切皆对象),call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里。
相关问答
Q1: 在JS中,call()方法和apply()方法到底该怎么应用?
1、apply与call是更改对象的内部指针,即改变对象的this指向的内容;call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。
2、apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。call:调用一个对象的一个方法,用另一个对象替换当前对象。
3、对象a类似array,但不具备array的slice等方法。使用call绑定,这时候就可以调用slice方法。实现继承 通过call和apply,我们可以实现对象继承。
4、JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别。\x0d\x0a先来看看JS手册中对call的解释:\x0d\x0acall 方法\x0d\x0a 调用一个对象的一个方法,以另一个对象替换当前对象。
Q2: JS中关于call()方法的一个问题,如图中所示,求高手详解。
第二句alert(a),显然在函数e的作用域里,变量a是不存在的,所以js会到window的作用域去查找属性a,而window的属性a是有的,它的值是A,所以这个时候alert(a)就是alert(window.a),alert的结果就是A。
不能改,因为此处的this是window对象不是e。这里e函数的作用作用其实是定义两个全局变量a,和b。换成e的话就是定义e的属性了。
使用call和apply方法,主要是为了修改函数运行时的this指针。
Q3: js中apply()和call()方法有用吗?用处不大我就不深究了。
1、从定义中可以看出,call和apply都是调用一个对象的一个方法,用另一个对象替换当前对象。
2、在大多数情况下,两个函数可以相互替换的。你可以把apply当作call的糖衣写法。就好像js里面循环函数你可以用for也可以用while 一样。call和apply不是一定要怎么用的。
3、对象(JavaScript 中一切皆对象),call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里。
4、call,apply和bind的区别 它们在功能上是没有区别的,都是改变this的指向,它们的区别主要是在于方法的实现形式和参数传递上的不同。call和apply方法都是在调用之后立即执行的。
5、对于 apply、call 二者而言,作用完全一样,只是接受参数的方式不太一样。
Q4: 如何理解和熟练运用js中的call及apply
1、两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法。或者说thisObj『继承』了obj的属性和方法。绑定后会立即执行函数。唯一区别是apply接受的是数组参数,call接受的是连续参数。
2、call:则是直接的参数列表,主要用在js对象各方法互相调用的时候,使当前this实例指针保持一致,或在特殊情况下需要改变this指针。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
3、前言通过call()、apply()和bind()方法,我们可轻易地借用其它对象的方法,而无须从这些对象中继承它。在JavaScript中借用方法在JavaScript中,有时可以重用其它对象的函数或方法,而不一定非得是对象本身或原型上定义的。
4、apply与call是更改对象的内部指针,即改变对象的this指向的内容;call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。
5、JavaScript中的每一个function对象都会有call和apply方法 定义:apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。
Q5: javascript中函数方法call()中参数this的问题
1、call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明: call 方法可以用来代替另一个对象调用一个方法。
2、当call函数的第一个参数是undefined或者null时,f.call(undefined)就相当于f(),也相当于window.f()。那么根据开头的分析,这时f函数的调用者就是window了,也就是说window.a = A了。
3、使用call()或调用函数apply(),也称为显式绑定。
4、call() 方法调用一个对象。简单理解为调用函数的方式,但是它可以改变函数的 this 指向。
5、自由和灵活,结合apply(call)方法,可以使JS变得异常强大。变化的this 在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)。
call函数js的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于call函数的用法、call函数js的信息别忘了在本站进行查找喔。






