对象的key为啥用方括号表示法?
javascript吧
全部回复
仅看楼主
level 7
这里key为何不是state.selected?
note.addEventListener("change", () => {
setState({
notes: Object.assign(
{}, state.notes,
{[state.selected]: note.value}),
selected: state.selected
});
});
2023年08月11日 09点08分 1
level 7
动态赋值啥意思?
2023年08月11日 23点08分 2
level 7
2023年08月11日 23点08分 3
level 1
方括号可以放变量进去,假如你需要动态传入一个属性名,就需要用到方括号,正常属性名都是固定的string
2023年08月12日 03点08分 4
动态传入属性名是什么意思?它和我直接state.selected作为key有啥不同?
2023年08月12日 03点08分
level 13
string x=某某;
obj.x会报错,obj[x]可以通过,本质没区别,但点语法会有无法方便完成业务需求的情况
2023年08月12日 08点08分 5
我试了下, let a = 1; let b = {a: "1"}; 但是让b = {[a]: 1}打印出来直接为{1: "1"}
2023年08月12日 08点08分
[a]直接映成1了
2023年08月12日 08点08分
@从入门☞放弃 有问题吗?你方括号里面是变量了,实际的属性名就是这个变量的值了啊
2023年08月12日 08点08分
@五天 为啥不能直接{name: value}而要{[name]: value},试了下.name貌似也可以?
2023年08月12日 08点08分
level 8
const str = 'name'
const obj = { [str]: 1 }
console.log(obj);
// { name: 1 }
2023年08月31日 02点08分 6
谢谢层主
2023年08月31日 04点08分
1