JavaScript返回语句中[]的含义、能否移除及类型判定问题
问题解答
1. 返回语句中[]的含义
这里的[sortField]是ES6对象字面量的计算属性名语法,作用是把变量sortField的实际值作为对象的属性名,而非把字符串"sortField"固定当作属性名。比如如果sortField的值是"createTime",返回的对象就会是{ _id: item._id, createTime: item.createTime },属性名由变量值动态决定。
2. 能否将[sortField]: item[sortField]修改为sortField: item.sortField?
绝对不能,两者逻辑完全不同:
- 原写法
[sortField]: item[sortField]:属性名是sortField变量的值,属性值是item对象中对应该变量值的属性内容; - 修改后的
sortField: item.sortField:属性名固定为字符串"sortField",属性值是item对象中名为"sortField"的属性内容(若item无此属性,值为undefined)。
这会直接导致生成的nextKey对象不符合分页逻辑的需求。
3. 该语法属于数组还是对象语法?
这是对象语法,是ES6对对象字面量的增强特性,和数组无关。数组的[]用于定义数组或访问数组元素,而这里是在对象字面量里用[]定义动态属性名。
内容的提问来源于stack exchange,提问作者truongt2
相关产品推荐
相关产品推荐

