为了账号安全,请及时绑定邮箱和手机立即绑定

underscore里面的throttle,执行func的时候为什么要用apply绑定

underscore里面的throttle,执行func的时候为什么要用apply绑定

qq_遁去的一_1 2018-08-10 20:14:08
underscore源码地址: https://github.com/jashkenas/... 852行    function factory(name, color) {      this.name = name;      this.color = color;     }              factory.prototype.init = function() {      document.querySelector('.parent').addEventListener('scroll', throttle(function(){        console.log(this.name, this.color)       }, 1000, {leading: false, trailing: true}))     }    var product = new factory('jack', 'white')     product.init()滚动时,打印的值为 undefined, undefined而源码中执行的时候,用了apply绑定this的作用域result = func.apply(context, args);但这样好像并没有什么用,所以这里为什么不直接用 func(args)
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

this 指向的问题

要么用 es6 箭头函数,要么把var that = this 函数体里用that 替代this

apply 也只是指向了你匿名函数的this


查看完整回答
反对 回复 2018-08-12
  • 1 回答
  • 0 关注
  • 925 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信