Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ,如何通过函数参数为对象命名?_Javascript - Fatal编程技术网

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}