javascript - es6中的[]()是怎样的用法
本文介绍了javascript - es6中的[]()是怎样的用法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
看别人的代码时候,无意间看到[](){}这样的用法,但阅尽百度都没看到这个方法的详解,所以想咨询一下大家。
具体是在vuex里的store.js看到
[changeListStatus](state,bool){ state.isAllList = bool; }
const mutations = {
[changeListStatus](state,bool){
state.isAllList = bool;
},
[addNote](state) {
const newNote = {
text: 'New note',
favorite: !state.isAllList,
_rm: Math.random(),
}
state.notes.push(newNote);
state.activeNote = newNote;
},
[editNote](state, text) {
state.activeNote.text = text;
},
[deleteNote](state){
let rm = state.activeNote['_rm'];
let index = state.notes.findIndex(function(v,i){
if( rm == v['_rm'] ) return true;
return false;
});
if(index >= 0) state.notes.splice(index, 1);
state.activeNote = state.notes[0] || {};
},
[toggleFavorite](state){
state.activeNote['favorite'] = !state.activeNote['favorite']
},
[setActiveNote](state,note){
state.activeNote = note;
},
}
解决方案
问题分解
var changeListStatus='foo';
var obj={
[changeListStatus](state,bool){ state.isAllList = bool; }
}
=>
var changeListStatus='foo';
var obj={
[changeListStatus]:function(state,bool){ state.isAllList = bool; }
}
=>
var obj={
foo:function(state,bool){ state.isAllList = bool; }
}
[]表示属性内是可计算的,常见的是比如 给对象安装迭代器
var obj={}
obj[Symbol.iterator]=function(){}
这篇关于javascript - es6中的[]()是怎样的用法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文