我是vueJS的新手我想使用以下模板来启动我的项目,我想将其转换为IE11
链接:codepen erickarbe/pen/pLbRqQ
原始代码为:
computed: {
filteredMembers() {
return this.members.filter(member => {
let first = member.First.toLowerCase()
let last = member.Last.toLowerCase()
let fresult = first.includes(this.searchQuery.toLowerCase())
let lresult = last.includes(this.searchQuery.toLowerCase())
if(fresult)
return fresult
if(lresult)
return lresult
})
},
为了使用IE11,我尝试使用polyfill并将代码转换为
computed: {
filteredMembers: function(){
return this.members.filter(function(member){
let first = member.First.toLowerCase()
let last = member.Last.toLowerCase()
//Error for 'this'
let fresult = first.includes(this.searchQuery.toLowerCase()) //'this' Error
let lresult = last.includes(this.searchQuery.toLowerCase()) //'this' Error
//Error for 'this'
if(fresult)
return fresult
if(lresult)
return lresult
})
},}
我在这个上使用"this"时出错。searchQuery.toLowerCase(((
但我可以像一样使用"varths=this"来解决它
computed: {
filteredMembers: function(){
var ths = this;
........
let fresult = first.includes(ths.searchQuery.toLowerCase())
let lresult = last.includes(ths.searchQuery.toLowerCase())
这是一种非常艰难的方式还是愚蠢的方式来获得"这个"值???
有没有最好的方法来获得当前的"这个"值,非常感谢
请阅读this
关键字在JavaScript中的工作原理。
您只需要将原始this
绑定到新函数:
return this.members.filter((function (member) {
// ...
}).bind(this))
围绕该功能的额外()
可能没有必要,但我不确定没有它IE11是否能工作。