JSON不支持包含
function定义/表达式。
相反,您可以做的是
commands使用所需的
functions 定义一个对象,然后传递一个
commandName:
// client-sidevar commands = { log: function (param) { console.log(param); }};socket.on('executecommand', function(data){ var a = 'foo'; commands[data.commandName](a);});// server-sidesocket.emit('executecommand', { commandName: 'log' });您还可以使用
fn.apply()传递参数并使用
commandName以下命令检查匹配项
in:
// client-sidevar commands = { };socket.on('executecommand', function(data){ if (data.commandName in commands) { commands[data.commandName].apply(null, data.arguments || []); } else { console.error('Unrecognized command', data.commandName); }});// server-sidesocket.emit('executecommand', { commandName: 'log', arguments: [ 'foo' ]});


