美文网首页
JS中函数的bind、call、apply总结

JS中函数的bind、call、apply总结

作者: 古水木 | 来源:发表于2019-05-25 12:35 被阅读0次

如图,js函数本身就具有一些方法和属性

image.png

下面介绍一些常用方法。

1.bind方法

bind方法可以改变函数在被执行时内部的this指向,并返回一个函数
举例如下:
1.假入不用箭头函数,我们可以用如下方法改变setTimeIntervalthis的指向

setTimeInterval(function(){}.bind(this),1000}

2.触发事件

btn.onclick=function(){
  console.log(this)
}.bind(obj)

2.apply方法

改变函数执行的this,并接收参数数组,执行函数
举例如下:
已知Math.max方法可以获取一组数中的最大值
Math.max(2,5,7),但改方法只能接收单个字符,那么如何获取数组的最大值呢?
可应用apply方法

var arr=[2,5,6,7]
Math.max.apply(null,arr)

2.call方法

apply方法不同的是,call方法接收的是参数列表
举例,在函数继承时
例如学生要继承人的属性

function Person(name,age){
  this.name=name;
  this.age=age;
}
function Student(name,age,score){
  Person.call(this,name,age)//此处用 call 方法来改变this为Student的this
  this.score=score;
}
var s1=new Student('xiaoyu',22,99)

相关文章

  • 简单分析apply、call、bind

    apply & call & bind 在 js中call/apply,都是为了改变函数运行的上下文(contex...

  • js中 call apply bind的理解

    js中的call apply bind都是用来改变this指向的 call apply bind都是用来改...

  • call apply

    js基础知识---call,apply,bind的用法 call,apply详解 javascript中,call...

  • 为何常常栽在call,apply,bind这些函数

    1. call、apply、bind作用于函数上 2. call 3. apply 总结: 在call传入参数...

  • this深入理解

    js中this指向有几种情况 全局环境 函数调用 构造调用 apply、call、bind绑定 箭头函数 全局环境...

  • call(),apply()和bind()

    call、apply和bind函数存在的区别:bind返回对应函数, 便于稍后调用; apply, call则是立...

  • apply, call, bind

    apply, call, bind 都是用来改变函数的this对象的指向 apply, call, bind 第一...

  • JS进阶知识点和常考面试题

    手写 call、apply 及 bind 函数 涉及面试题:call、apply 及 bind 函数内部实现是怎么...

  • bind call apply

    区别:call和apply调用就是执行函数 bind返回新函数 bind利用call或apply兼容i...

  • js小知识

    1. call、apply和bind的区别 call、apply和bind方法都是函数对象中的方法,用来动态地改变...

网友评论

      本文标题:JS中函数的bind、call、apply总结

      本文链接:https://www.haomeiwen.com/subject/gamazqtx.html