箭头函数没有自己的this,也没有自己的arguments,是和上一级的作用域共享this和arguments。 普通的函数声明或者函数表达式,都会在函数体内自动生成this和arguments。 timer = setTimeout(function () { // 当前函数体独享的 this // 当前函数体独享的 arguments fn.apply(this, arguments); }, delay); timer = ...
// 防抖函数 export function debounce (fn, delay) { let timeout = null return function () { if (timeout) { clearTimeout(timeout) } timeout = setTimeout(fn, delay) } } // 使用时 methods:{ aaa: debounce(() => { console.log(this) // 在这里的this是不存在的,我应该怎么才能拿到...
但是这个时候问题就出现了,通过打印getUserAction函数中this的值,可以看到,如果不进行防抖处理this是指向dom元素的,但是经过防抖处理this就指向的window。这是因为js中this指向是函数运行时,通过执行上下文生成的。在执行return 中的匿名函数的时候执行上下文是container,但是执行到setTimout里面的func的时候,并没有具体的执...
b. 如果父类构造函数中的代码完全适用于子类构造函数,就在子类构造函数中运用上下文模式借用父类构造函数,从而给子类的实例添加属性和方法 functionAnimal(type){this.type=type}Animal.prototype.run=function(){console.log('run')}functionCat(name,type){// 此处采用上下文调用,使 this 指向 Cat 的实例// 故 ...
function debounce(fn, interval) { let timer = null; return function(event) { console.log(this); // if (timer) { clearTimeout(timer); } timer = setTimeout(function(){ fn(event); }, interval) } } 有用 回复 弹铁蛋同学 6539 发布于 2020-12-06 ...
function debounce(fn, interval) { let timer = null; return function(event) { console.log(this); // if (timer) { clearTimeout(timer); } timer = setTimeout(function(){ fn(event); }, interval) } } 有用 回复 查看全部 2 个回答 推荐问题 遇到一道设计模式的面试题,各位...
为什么onclick提示找不到函数? 2 回答4.8k 阅读 原生js实现防抖函数,为什么这么写无法实现防抖效果 2 回答2.7k 阅读 请问构造函数中return一个新的对象,箭头函数的this为什么指向一个空对象呢? 2 回答2.4k 阅读 为什么这么简单的函数都报错? 9 回答9.2k 阅读✓ 已解决 为什么打印a为12? 1 回答1.6k 阅读 找...