实习项目中的知识点和经验总结(四):理解和使用事件绑定bind及bind、call、apply 改变函数中this的指向
2020-08-04 14:41
901 查看
call
call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。
call()方法的作用和 apply() 方法类似,区别就是call()方法接受的是参数列表,而apply()方法接受的是一个参数数组。
apply
apply() 方法调用一个具有给定this值的函数,以及作为一个数组(或类似数组对象)提供的参数。
Function.apply(thisArg, [argsArray]) // thisArg: 必选的。在 func 函数运行时使用的 this 值。 argsArray:可选的。一个数组或者类数组对象, **其中的数组元素将作为单独的参数传给 func 函数。** 返回值:调用有指定this值和参数的**函数**的结果。示例
用 apply 将数组添加到另一个数组
var array = ['a', 'b']; var elements = [0, 1, 2]; array.push.apply(array, elements); console.info(array); // ["a", "b", 0, 1, 2]
bind
在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。
bind() 函数会创建一个新的绑定函数(bound function,BF)。
调用绑定函数通常会导致执行包装函数。
绑定函数具有以下内部属性: [[BoundTargetFunction]] - 包装的函数对象 [[BoundThis]] - 在调用包装函数时始终作为 this 值传递的值。 [[BoundArguments]] - 列表. 在对包装函数做任何调用都会优先用列表元素填充参数列表。 [[Call]] - 执行与此对象关联的代码。 通过函数调用表达式调用。 内部方法的参数是一个this值和一个包含通过调用表达式传递给函数的参数的列表。
相关文章推荐
- JavaScript call apply使用——JavaScript对象的方法绑定到DOM事件后this指向问题
- JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
- 函数内this指向的不同场景,以及如何改变this的指向(bind,call,apply)
- call、apply、bind的使用,改变this指向的三种方式
- 使用call、apply和bind解决js中烦人的this,事件绑定时的this和传参问题
- JavaScript中call,apply,bind方法的总结(改变this指向)
- JavaScript知识梳理 - 函数的this指向及改变 - call、apply、bind(六)
- 改变【this】指向的三种方式(call、apply、bind)对比
- 详解改变this指向的三种方法call apply bind及重写(模拟)
- js中改变this指向的三种方法(bind、call、apply)
- js三种改变this指向的方法call、apply、bind及区别
- JS中改变this指向的方法(call和apply、bind)
- js中this的改变指向的方法:call和apply、bind
- js call() apply() bind() -改变this指向
- 改变this指向(call、apply、bind)
- 改变this指向:call,apply,bind
- javascript this 和 es6 箭头函数this 的理解以及call()、apply()、bind()的用法
- 理解JS中的this指向,call,apply,与bind
- JS(JavaScript)中的this使用方式(call、apply、bind方法的异同)——大总结
- call,apply,bind改变this指向