apply、call、bind用法与区别

发布日期:2017-05-23 阅读量:409

一、作用

    三者都是用于改变this指向

二、用法

    1、apply 第一个参数是指定 this 指向,第二个参数是实参数组形式,立即执行

        fn.apply(this, [param1, param2, ...]);

    2、call 第一个参数是指定this指向,第二个及之后的参数是实参列表,立即执行

        fn.apply(this, param1, param2, ...);

    3、bind 第一个参数是指定 this 指向,第二个及之后的参数是实参列表,需要调用执行

        fn.bind(this, param1, param2, ...)();

三、补充

    1、非严格模式,this如果为空或null或undefined 则指向 window

    2、严格模式,this为空则为 undefined,null 则为 null