zoukankan      html  css  js  c++  java
  • JavaScript_call,bind,apply的区别

    call、apply、bind

    1、改变方法中this关键字并且将方法执行,bind 返回的是一个新的函数,你必须调用它才会被执行。

    2、call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象。第二个参数的区别:

      * call 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔,obj.myFun.call(db,'成都','广州');

      * apply 的所有参数都必须放在一个数组里面传进去 obj.myFun.apply(db,['成都','广州']);

      * bind 除了返回是函数以外,它 的参数和 call 一样。

    var name = '小王',age = 17;
    var obj = {
        name: '小张',
        objAge: this.age,
        myFun: function (fm, t) {
            console.log(this.name + " 年龄" + this.age + " 来自 " + fm + " 去往 " + t);
        }
    }
    var db = {
        name: '德玛',
        age: 99
    }
    obj.myFun.call(db,'成都','上海');     // 德玛 年龄 99  来自 成都去往上海
    obj.myFun.apply(db,['成都','上海']);      // 德玛 年龄 99  来自 成都去往上海
    obj.myFun.bind(db,'成都','上海')();       // 德玛 年龄 99  来自 成都去往上海
    obj.myFun.bind(db,['成都','上海'])();   // 德玛 年龄 99  来自 成都, 上海去往 undefined
  • 相关阅读:
    centos 7 安装maven
    linux添加用户
    intellij添加jar包
    mysql用户管理
    centos7 mariaDB安装
    hibernate入门实例
    Linux文件描述符
    Python小爬虫实例
    IO流-文件管理
    IO流-ZIP文档
  • 原文地址:https://www.cnblogs.com/chickenfarm/p/12575333.html
Copyright © 2011-2022 走看看