2020-08-27

call( ),apply( )和bind( )方法

call() 方法是预定义的 JavaScript 方法。它可以用来调用所有者对象作为参数的方法。
通过 call(),能够使用属于另一个对象的方法。

apply()与call()很类似,但call() 和 apply() 不同之处是:
call() 方法分别接受参数。
apply() 方法接受数组形式的参数。
所以如果要使用数组而不是参数列表,则 apply() 方法非常方便。

Function.prototype.bind()
bind()方法主要就是将函数绑定到某个对象,bind()会创建一个函数,函数体内的this对象的值会被绑定到传入bind()中的第一个参数的值,例如:f.bind(obj),实际上可以理解为obj.f(),这时f函数体内的this自然指向的是obj;


例子:

     var emp={
        id:1,
        name:"roku"
    };
    
    function printInfo(hobby1,hobby2,hobby3){
        console.log("姓名:"+this.name,hobby1,hobby2,hobby3);
    }
    
    printInfo.call(emp,"吃饭","睡觉","打游戏");
    printInfo.apply(emp,["吃饭","睡觉","打游戏"]);
    
    var empPrintInfo = printInfo.bind(emp,"吃饭","睡觉","打游戏");
    empPrintInfo();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。