zoukankan      html  css  js  c++  java
  • bind方法

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <button id="test">click me</button>
    </body>
    <script>
    function bind(context,name){
        return function(){
            return context[name].apply(context,arguments);
      //用apply函数改变函数的上下文,apply函数的第一个参数就是我们需要的上下文对象。
        }
    };
    /*对比一下*/
    //function bind(context){ 
      //self = this;  //保存this,即调用bind方法的目标函数
      //return function(){
        //  return self.apply(context,arguments);
      //};
    //};
    
    
    var button = {
        clicked: false,
        click: function(){
            this.clicked = true;
            console.assert(button.clicked,"The button has been clicked.");
            console.log(this);
        }
    };
    var elem = document.getElementById("test");
    elem.addEventListener("click",bind(button,"click"),false);
    //调用bind方法,bind方法的第一个参数就是我们需要的上下文对象;
    //addEventListener()三个参数,分别是event,function,false
    </script>
    </html>

     bind方法新增加 17/3/24

    <body>
        <button id="button" value="点击"></button>
        <input type="text" id="text">
      </body>
        <script>
            var button = document.getElementById("button"),
            text = document.getElementById("text");
        button.onclick = function() {
            alert(this.id); // 弹出text
        }.bind(text);
        </script>

    简写 fn.bind(this);  

    用途:改变上下文的

  • 相关阅读:
    Python 面向对象
    python Flask
    工作中的Python脚本
    python模块
    python函数
    Python小课题练习作业
    Python文件处理
    Maven 生成可执行的jar包
    Maven [ERROR] 不再支持源选项 5。请使用 6 或更高版本
    MySQL 导入导出数据
  • 原文地址:https://www.cnblogs.com/Jerry-spo/p/6437789.html
Copyright © 2011-2022 走看看