js中call,apply和bind广泛应用,都可以用来改变this指向,call和apply的区别在于参数传递的不同,前者是参数序列,后者是数组。bind的函数也是参数序列,但是需要生成一个新的函数 1.call,传递的参数为序列 Function.prototype.mycall = funct ...
分类:
移动开发 时间:
2020-01-20 14:24:30
阅读次数:
76
ECAMScript3给Function的原型定义了两个方法,Function.prototype.call 和Function.prototype.apply。 区别仅在于传入的参数形式不同。 用法: 1、改变this指向。call和apply最常见的用途是改变函数内部的this指向。 2、借用其 ...
分类:
移动开发 时间:
2019-10-18 00:02:27
阅读次数:
175
1. Call 和 Apply 的区别 语法:function.call(thisObj [, arg1[, arg2[, [, ...argN]]]]);function.apply(thisObj [, argArray] ); 定义: call 和 apply 可以让我们手动设置 this 指 ...
分类:
Web程序 时间:
2019-09-04 21:28:36
阅读次数:
132
call()function.call(obj[,arg1[, arg2[, [,.argN]]]]]) 调用call的对象必须是个函数function call的第一个参数将会是function改变上下文后指向的对象,也就是上面例子里的小刚,也就是上上面例子里的老婆大人,如果不传,将会默认是全局对 ...
分类:
移动开发 时间:
2019-03-07 14:24:59
阅读次数:
209
相同点:两个方法产生的作用是完全一样的,都用来改变当前函数调用的对象。 不同点:调用的参数不同,比较精辟的总结: foo.call(this,arg1,arg2,arg3) == foo.apply(this, arguments)==this.foo(arg1, arg2, arg3) 1.cal ...
分类:
移动开发 时间:
2018-03-23 14:09:22
阅读次数:
185
写在前面的话 这三个方法都是来自Function.prototype上,所以所有的函数都可以使用。 他们有一个共同点,就是可以指定函数执行时的内部this指向。 call和apply的区别在于参数的方式。 bind和前两个的区别在于,bind不会马上执行函数,而是返回一个函数,供以后调用。 call ...
分类:
移动开发 时间:
2018-02-11 20:05:31
阅读次数:
212
call,apply都属于Function.prototype的一个方法 每个Function对象实例(就是每个方法)都有call,apply属性 语法:foo.call(this, arg1,arg2,arg3) == foo.apply(this, arguments) == this.foo( ...
分类:
移动开发 时间:
2018-01-09 16:44:35
阅读次数:
174
call()与apply()区别 一、方法的定义 call方法: 语法:call(thisObj,Object)定义:调用一个对象的一个方法,以另一个对象替换当前对象。说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj ...
分类:
移动开发 时间:
2017-12-28 11:39:44
阅读次数:
197
JS中的call()和apply()方法 博客分类: JS JS中的call()和apply()方法 JS 1、方法定义 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象。 说明: ca ...
分类:
移动开发 时间:
2017-11-28 11:48:54
阅读次数:
305
本文根据知乎中一些大佬的回复整理完成,如有更深见解,欢迎加入讨论~~ 在js OOP中,经常会这样定义: 使用call和apply是为了动态改变this而出现的,当一个对象没有某个方法,但是其他方法有,可以借助call或apply来使用其他对象的方法来操作: call 和 apply 的区别是,ca ...
分类:
移动开发 时间:
2017-09-28 14:11:30
阅读次数:
182