JS中this的作用域

this的作用域:apply,call,bind##


apply方法

fun.apply(thisArg,[argsArray]):在指定对象的作用域上调用函数,函数参数以数组形式提供,该方法实际上等于设置函数体内this对象值,即:this的作用域。

参数:thisArg要在其中运行函数的作用域、方法的绑定对象。即:要把函数体内的this指到哪个对象上。
参数:argsArray绑定对象的参数数组。该参可以是一个Array对象实例,也可以是一个arguments对象。

call方法

.fun.call(thisArg,[arg1,[arg2,[...]]]):在指定对象上作用域上调用函数,该方法实际上等于设置函数体内的this对象的值,即:this的作用域,该方法与apply方法作用相同,只是在参数接收方式上有所区别。对于call,第一个方法是this关键字或对象名没有变化,其余参数都是直接传递给函数,这与apply按数组方式传递参数有所不同。
参数:thisArg一定要在其中运行函数的作用域,方法的绑定对象。即:要把函数体内的this指到哪个对象上。
参数:arg1,arg2,...绑定函数对象的参数列表。

bind方法

bind方法是ES5中新增的方法,该方法会创建一个函数实例,实例的this为传递到bind方法的值。
.fun.bind(thisArg[,arg1[,arg2][,...]]):创建一个函数实例,参数传递形式与call方法相同,实例的this作用域为bind方法中thisArg对象作用域。
参数:thisArg要在其中创建函数实例的作用域对象。即:函数实例this作用域对象。
参数:arg1,arg2,...创建函数实例的参数列表。

你可能感兴趣的:(JS中this的作用域)