JS中this的作用域

作者: 肆意木 | 来源:发表于2017-04-13 20:42 被阅读75次

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


    <strong>apply方法</strong>

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

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

    <strong>call方法</strong>

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

    <strong>bind方法</strong>

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

    相关文章

      网友评论

        本文标题:JS中this的作用域

        本文链接:https://www.haomeiwen.com/subject/ijmvattx.html