Javascript ,如何通过函数参数为对象命名?
我有这样一个函数:Javascript ,如何通过函数参数为对象命名?,javascript,Javascript,我有这样一个函数: function dataSend(type, message) { return { type: message }; }; io.sockets.emit('addToQueue', dataSend('error', 'User not found')); 我是这样使用的: function dataSend(type, message) { return { type: message }; }; io.sockets.emit(
function dataSend(type, message) {
return {
type: message
};
};
io.sockets.emit('addToQueue', dataSend('error', 'User not found'));
我是这样使用的:
function dataSend(type, message) {
return {
type: message
};
};
io.sockets.emit('addToQueue', dataSend('error', 'User not found'));
但是当它到达客户端时,我得到一个类似
{type:'User not found'}
而不是
{'error':'User not found'}
为什么会这样?我不知道如何解决这个问题。任何信息都很好,谢谢。您不能用这样的变量设置键,您需要括号表示法
function dataSend(type, message) {
var obj = {};
obj[type] = message;
return obj;
};
不能用这样的变量设置键,需要括号表示法
function dataSend(type, message) {
var obj = {};
obj[type] = message;
return obj;
};
试试这个:
函数数据发送(类型、消息){
变量a={};
a[类型]=消息;
返回a;
}
Javascript不需要在属性名称周围加引号
使用{type:message}
或{'type':message}
会产生相同的结果。尝试以下方法:
函数数据发送(类型、消息){
变量a={};
a[类型]=消息;
返回a;
}
Javascript不需要在属性名称周围加引号
使用
{type:message}
或{'type':message}
产生相同的结果。不,总是发生,不要担心。不,总是发生,不要担心。code–只有答案不受欢迎。您应该添加一个解释,说明OP失败的原因以及您的答案修复它的原因。@RobG当您创建{type:message}
时,您正在创建属性type
。Javascript不需要在属性名称周围加引号。我知道答案,我在评论,以便您能够更好地回答这个问题和未来的问题。:-)@罗布:谢谢你的提示。我完全忘了做这件事。代码——只有答案不受欢迎。您应该添加一个解释,说明OP失败的原因以及您的答案修复它的原因。@RobG当您创建{type:message}
时,您正在创建属性type
。Javascript不需要在属性名称周围加引号。我知道答案,我在评论,以便您能够更好地回答这个问题和未来的问题。:-)@罗布:谢谢你的提示。我完全忘记做了。使用ES6你可以做{[type]:message}
使用ES6你可以做{[type]:message}