• js中bind,call,apply方法的应用


    最近用js的类写东西,发现一个无比蛋疼的事,那就是封装的类方法中的this指针经常会改变指向,失去上下文,导致程序错误或崩溃。

    比如:

    function Obj(){
      this.type = "obj";
    }
    Obj.prototype = {
      show : function (){
      etTimeout(function (){
        console.log(this.type);
      },300)
    }

    var obj = new Obj();
    obj.show();  //undefined

    所幸伟大的js有多种方法可以解决这个问题。我们可以直接保存上下文的指针指向 比如  var self = this; 然后用缓存的 self指针,但是js里面有 bind,apply,call等比较好用的方法,来指定上下文。

    语法:fn.bind(obj,arguments)

       fn.apply(obj,arguments)

       fn.call(obj,arguments)

    区别:

      1.bind返回一个方法,而其余两个都直接调用了函数;

      2.第一个参数都一样,指定上下文对象,第二个参数apply是数组,而call则对应形

    参照:http://www.css119.com/archives/1376

  • 相关阅读:
    kvm虚拟机网络管理
    kvm虚拟机存储管理
    kvm虚拟机迁移
    KVM嵌套虚拟化nested之CPU透传
    kvm认识和安装
    博客美化(二)
    日志管理
    IP分为五类
    windows(xshell)免密码登录
    mpvue的toast弹窗组件-mptosat
  • 原文地址:https://www.cnblogs.com/donglegend/p/4690243.html
Copyright © 2020-2023  润新知