
正文
js中类的call,js中callee
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
javascript中如何使用call和apply实现继承用法详解
1、原型链实现继承例子:借用构造函数基本思想:在子类型构造函数的内部调用超类构造函数,通过使用call()和apply()方法可以在新创建的对象上执行构造函数。
2、apply与call是更改对象的内部指针,即改变对象的this指向的内容;call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。
3、Array.prototype.slice.call(a);//[1, yjc]对象a类似array,但不具备array的slice等方法。使用call绑定,这时候就可以调用slice方法。实现继承 通过call和apply,我们可以实现对象继承。
相关问答
Q1: Js中call和apply的区别和用法是什么?
对于apply和call两者在作用上是相同的,但两者在参数上有区别的。
从定义中可以看出,call和apply都是调用一个对象的一个方法,用另一个对象替换当前对象。
apply与call是更改对象的内部指针,即改变对象的this指向的内容;call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。
Q2: js中的call
1、JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别。\x0d\x0a先来看看JS手册中对call的解释:\x0d\x0acall 方法\x0d\x0a 调用一个对象的一个方法,以另一个对象替换当前对象。
2、js中call和apply都可以实现继承,唯一的一点参数不同,func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])。
3、apply与call是更改对象的内部指针,即改变对象的this指向的内容;call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。
4、call和apply的作用一样,只是方法传递的参数不同。
5、call和apply obj.call(thisObj, arg1, arg2, ...);obj.apply(thisObj, [arg1, arg2, ...]);两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法。
6、这是两者最大的不同,在于后者传递的是一个数组。在大多数情况下,两个函数可以相互替换的。你可以把apply当作call的糖衣写法。就好像js里面循环函数你可以用for也可以用while 一样。call和apply不是一定要怎么用的。
Q3: 在JS中如何使用call、apply
github地址call、apply和bind的原生实现call与apply简单介绍:call和apply方法都是使用一个指定的this值和对应的参数前提下调用某个函数或方法。区别则在于call是通过传多个参数的方式,而apply则是传入一个数组。
\x0d\x0a先来看看JS手册中对call的解释:\x0d\x0acall 方法\x0d\x0a 调用一个对象的一个方法,以另一个对象替换当前对象。
最常借用的方法是 Array.prototype.slice。借用方法之所以可行,是因为 call 和 apply 方法允许在不同上下文中调用函数,这也是重用已有功能而不必继承其它对象的好方法。
apply与call是更改对象的内部指针,即改变对象的this指向的内容;call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。
Q4: js中call和apply的区别
1、call:则是直接的参数列表,主要用在js对象各方法互相调用的时候,使当前this实例指针保持一致,或在特殊情况下需要改变this指针。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
2、唯一区别是apply接受的是数组参数,call接受的是连续参数。
3、JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别。\x0d\x0a先来看看JS手册中对call的解释:\x0d\x0acall 方法\x0d\x0a 调用一个对象的一个方法,以另一个对象替换当前对象。
4、apply与call是更改对象的内部指针,即改变对象的this指向的内容;call与apply的第一个参数都是要传入给当前对象的对象,及函数内部的this,后面的参数都是传递给当前对象的参数。
5、js中call和apply都可以实现继承,唯一的一点参数不同,func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])。
6、js中可以改变方法作用域和参数的方式有三种,apply,call,bind.apply 和call类似第一个参数是方法的作用域,其它参数是方法的参数。
Q5: 如何理解和熟练运用js中的call及apply
1、两者作用一致,都是把obj(即this)绑定到thisObj,这时候thisObj具备了obj的属性和方法。或者说thisObj『继承』了obj的属性和方法。绑定后会立即执行函数。唯一区别是apply接受的是数组参数,call接受的是连续参数。
2、call和apply的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值,也就是把想要运行的代码的作用域拿过来。比如你有一个函数o 但是如果直接执行,因为现在在当期作用域中并没有定义函数o。
3、apply()方法 apply()是你可以用来操作this的第二个函数方法。
4、先来看看JS手册中对call的解释:call 方法 调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]])参数 thisObj 可选项。将被用作当前对象的对象。
5、这次给大家带来在JS中如何使用call、apply,在JS中使用call、apply的注意事项有哪些,下面就是实战案例,一起来看一下。
6、JavaScript中的每一个function对象都会有call和apply方法 定义:apply:调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象应用B对象的方法。
关于js中类的call和js中callee的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








