zoukankan      html  css  js  c++  java
  • javascript Function.prototype.bind

    语法:

    fn.bind(obj,arg1,arg2,arg3...)

    bind是es5新增的方法,顾名思义,它的作用是将函数绑定到某个对象上,就像是某个对象调用方法一样。其本质还是改变了该函数的上下文(context),它跟call和apply不一样的地方是,在调用之后会生成一个新函数。比如:

    var x = y = 2,
    function fn(){
        return this.x + y;
    }
    var obj = {x:1};
    var obj1 = fn.bind(obj);
    obj1();//3

    而es3中却没有此方法,我会这样去实现:

    function bind(obj, fn) {
        return function () {
            return fn.apply(obj, arguments);
        };
    }

    如果想要是每个函数都使用bind的方法可以这样:

    if(!Function.prototype.bind){
        Function.prototype.bind = function(obj) {
            var that = this;
            return function () {
                return that.apply(obj, arguments);
            };
        }
    }
  • 相关阅读:
    Logstash收集Tomcat日志
    Logstash收集日志
    ELK搭建&Logstash 日志收集
    ELK介绍
    中文分词器
    ES数据备份与恢复
    Python开发之路
    Linux阅读目录
    333
    22222222
  • 原文地址:https://www.cnblogs.com/wang-jiang/p/4457019.html
Copyright © 2011-2022 走看看