常见问题/知识点记录(一)
一 call apply bind 相同点: 都可以改变函数内部的this指向 区别点: call和apply会调用函数 并且改变函数内部this指向 call和apply传递的参数不一样 call传递参数 arg1,arg2…形式 apply是数组形式 bind不会调用函数 可以改变this指向 传值方式类似call 主要应用场景: call经常做继承 apply经常跟数组有关系 比如借助于数学对象实现数组最大最小值 bind不调用函数 但会改变this指向 比如改变定时器的this指向 call和apply哪个性能更好一些? 两个传参数 <=3 个的时候 性能差不多 >3 的时候 call的性能比apply性能相对要好一些 一般后期开发 使用call多一点 call–前面的参数值作用域对象 后面的参数可以是多个 apply–第一个参数是作用域对象 第二个参数必须是数组 bind–绑定一个作用域 但不是立即执行 var b = a . fn var c = b . bind ( a , 1 , 2 ) c ( ) // c的作用域是a 二 什么是高阶函数 一. 函数作为参数 二. 函数作为返回值 三 箭头函数与普通函数(function)的区别是什么? 箭头函数语法比普通函数更加简洁 箭头函数没有自己的this 它里面的this继承函数所属上下文中的this