call和apply,bind的区别专讲

Posted Web引领者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了call和apply,bind的区别专讲相关的知识,希望对你有一定的参考价值。

  可以干什么?

  改变函数内的this指向;

  什么时候使用?

  构造函数使用this

  为什么使用?

  为了生成对象

  类(函数名不可以带括号).call()      因为this指向对象,所以call的第一个参数为对象    

  function fn(a,b){   (形参)

    this.name="zhang";

    this.age=20

  }

  obj={

    name:"li";

    age:10

  }

  fn.call(obj,a,b)

  fn.apply(obj,[a,b]) (实参)     传参{形参,实参}

  fn.bind(obj)                   bind(把fn中的this改变obj ,但是不调用  适用于事件)

  解析为: fn.prototype={

        name:"li"

        age:10

        }

  浏览器会默认为向下取整:

  定时器的使用时,先清除定时器,然后在写定时器(防止越点越快);

  鼠标拖拽的问题:<div>1</div>

  div中有字体,会出现鼠标焦点的丢失

以上是关于call和apply,bind的区别专讲的主要内容,如果未能解决你的问题,请参考以下文章

apply,call,bind的区别

js中的call,apply,bind区别

JS call,apply, bind区别

call 和 apply 和 bind的区别

call() apply() bind()方法的作用和区别!

js call()apply()bind()的区别和使用