Javascript:无法使用函数数组初始化对象属性

时间:2015-07-06 21:04:56

标签: javascript arrays node.js function

我坚持这个简单的:

var myfunc1 = function() {
    console.log('just a function');
};

var myfunc2 = function() {
    console.log('just another function');
};

var myobj = {
    id : 1,
    desc : 'an object',
    funz : [myfunc1, myfunc2]
};

console.log(JSON.stringify(myobj));

=>输出

/usr/local/bin/node lab.js
{"id":1,"desc":"an object","funz":[null,null]}

我正忙着做类似的事情:

{"id":1,"desc":"an object","funz":[Function,Function]}

我想念什么?

2 个答案:

答案 0 :(得分:2)

在Mozilla开发者网络上找到:

“如果未定义,在转换过程中遇到函数或符号,则省略(在对象中找到它)或删除为null(在数组中找到它时)。”

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

答案 1 :(得分:1)

在JSON.stringify

中省略了函数
  

如果未定义,在转换过程中遇到函数或符号,则省略(在对象中找到它)或删除为null(在数组中找到它时)。   https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

你可以这样做:

var myobj = {
    id : 1,
    desc : 'an object',
    funz : [String(myfunc1), String(myfunc2)]
};

得到你想要的东西。