zoukankan      html  css  js  c++  java
  • (O)JS核心:call、apply和bind

    1.

    var func=function(a,b,c){
            console.log([a,b,c]);
        };
    func.apply(null,[1,2,3]);  //[1,2,3]
    func.call(null,1,2,3);  //[1,2,3]
    func.bind(null,1,2,3);  //无输出
    func.bind(null,1,2,3)();    //[1,2,3]
    func.bind(null)(2,3,4)  //[2,3,4]

    解析:

       当使用apply或call时,如果我们传入第一个参数为null,函数体内的this会指向默认的宿主对象,在浏览器中则是window。

       apply和call只是参数传入形式不同,其他一样。但bind则不同:前面的调用call或apply时,函数直接运行,但bind不会运行,而是返回一个绑定上下文的函数并且this永远的指向bind括号中的第一个参数。

    2.

    call、apply和bind主要有2个作用:

    ①改变this的指向;

    ②借用其他对象的方法

  • 相关阅读:
    doc
    doc
    doc
    doc
    doc
    doc
    doc
    doc
    java基础知识系列--- 反射,注解,泛型,内省
    CCProcxy代理服务器的配置使用
  • 原文地址:https://www.cnblogs.com/jacksplwxy/p/6843307.html
Copyright © 2011-2022 走看看