vue methods里如何获取到vue 实例this?

handleScroll: throttle(
        function () {
        let Dom = document.querySelector('#businessSummary');
        console.log(Dom.scrollTop);
        console.log(this)
    },500
),
        
        1.这里的this打印的是undefined
        2.如果改成箭头函数
        
       ```
        handleScroll: throttle(
                () => {
                let Dom = document.querySelector('#businessSummary');
                console.log(Dom.scrollTop);
                console.log(this)
            },500
        ), 
        ```           
        
         取到的`this`  **并不是我想要的** ,因为是
        `{a:{data:fn,methods:xxx}}`的类似这种
        
阅读 3.2k
2 个回答

自己写的话要用call或者apply处理this
例子:

function throttle(fn){
  return function(){
    fn.apply(this,arguments)
  }
}
handleScroll: throttle(function(){
        let Dom = document.querySelector('#businessSummary');
        console.log(Dom.scrollTop);
        console.log(this)
    }.bind(this),500), 
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题