组件template:<my-dialog :is-show="isShowLogDialog" @click="closeDialog('isShowLogDialog')"></my-dialog>组件引入:import MyDialog from './base/dialog'组件data:data () { return { isShowLogDialog: false, }组件methods: methods: { closeDialog (attr) { this[attr] = false },请问:这里methods里的this[attr]是什么用法?官方文档没找着,这个this也是指代vue实例对象吧
2 回答
慕少森
TA贡献2019条经验 获得超9个赞
this[attr], 其实是原生js 里面获取对象属性的方法,或者给对象属性赋值。
获取对象属性有点方法和中括号方法.
中括号法可以用变量作为属性名,点方法旧不可以,即:
var objVue = {};
objVue.isShowLogDialog = false;
var arg = 'isShowLogDialog' // 这里就可以代表传入的任何参数
console.log(objVue.arg) // undefined
console.log(objVue[arg]) // false;
《高程3》里面 记得推荐使用 点方法,效率高
慕莱坞森
TA贡献1810条经验 获得超4个赞
这里的attr就是data 对象的某个key
比如 问题中的 isShowLogDialog
一般写成:this.isShowLogDialog=false
但如果这个 attr 想动态传参,就不能用 . 而只能用[]
于是就只成this[attr]=false;
添加回答
举报
0/150
提交
取消
