gpt4 book ai didi

vue.js - VueJS this in lodash 节流方法

转载 作者:搜寻专家 更新时间:2023-10-30 22:08:55 24 4
gpt4 key购买 nike

我正试图限制我的 VueJS 应用程序中的一个方法。我首先尝试了以下方法:

export default {
data () {
return {
foo: 'bar'
}
},
methods: {
doSomething () {
console.log('olas')
}
},
created () {
_.throttle(this.doSomething,200)
}
}

但是 doSomething 方法并没有被触发:https://jsfiddle.net/z4peade0/

然后,我尝试了这个:

export default {
data () {
return {
foo: 'bar'
}
},
methods: {
doSomething: _.throttle( () => {
console.log('olas')
},200)
},
created () {
this.doSomething()
}
}

然后函数被触发:https://jsfiddle.net/z4peade0/1/

问题是,我无法访问节流方法中的 foo 属性:

export default {
data () {
return {
foo: 'bar'
}
},
methods: {
doSomething: _.throttle( () => {
console.log(this.foo) // undefined
},200)
},
created () {
this.doSomething()
}
}

我尝试做类似的事情:

const self = {
...
methods: {
doSomething: _.throttle( () => {
console.log(self.foo)
},200)
},
...
}

export default self

没有成功

我如何在 VueJS 方法上使用 lodash 节流方法,并使用 this 上下文?

最佳答案

您正在使用箭头函数,它绑定(bind)了错误的上下文 (this)。您应该使用普通的函数:

    doSomething: _.throttle( function () {
console.log('olas', this.foo);
},200)

关于vue.js - VueJS this in lodash 节流方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42926986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com