,如何通过函数参数为对象命名?

时间:2014-09-10 23:24:13

标签: javascript

我有这样的功能:

function dataSend(type, message) {
  return {
    type: message
  };
};

我正在使用的是这样的:

io.sockets.emit('addToQueue', dataSend('error', 'User not found'));

但是当它到达客户端时,我得到一个类似

的对象

{ type: 'User not found' } 代替 { 'error': 'User not found' }

为什么这样做?我不知道如何解决这个问题,非常感谢。

2 个答案:

答案 0 :(得分:3)

您无法使用类似的变量设置密钥,您需要使用括号表示法

function dataSend(type, message) {

   var obj = {};

   obj[type] = message;

   return obj;

};

答案 1 :(得分:1)

试试这个:

function dataSend(type, message) {
  var a={};
  a[type]=message;
  return a;
}

Javascript不需要围绕属性名称引用。

使用{type:message}{'type':message}会产生相同的结果。