ES5~6~7学习笔记 函数扩展 call() 和 apply() 和 bind()

<script type="text/javascript">
  var obj={name:'bob',age:18}
  function f1 (value) {
    console.log(this,value)
  }

  // call和apply的区别在于传入参数形式不同
  f1.call(obj,22)// 依次传入
  f1.apply(obj,[33])// 必须以数组形式一次性传入

  /*
  bind的特点:绑定this不会立即调用当前函数而是将函数返回。
  bind的传参的方式和cal一样
   */
  var bar=f1.bind(obj)
  console.log(bar)

  /*
  举例:bind不会立即调用
  bind不会立即执行setTimeout的this
   */
  setTimeout(function () {
    console.log(this);
  }.bind(obj),1000)

</script>

 

上一篇:JavaScript学习——进阶(续4:异常捕捉&es5严格模式)


下一篇:ES5新增数组的方法