JSON can't stringify functions at all, it handles them just like undefined or null values. You can check the exact algorithm at EcmaScript 5.1 §15.12.3, see also the description at MDN.
However you of course can stringify function expression by casting them to a string, try
JSON has no means to represent a function. It is a data format designed for simplicity and compatibility across languages (and a function is the last thing that will be cross-language compatible).
If undefined, a function, or an XML value is encountered during conversion it is either omitted (when it is found in an object) or censored to null (when it is found in an array).
yourFunctionName.toString();
will also stringify a functionYou cannot do that, but there are some third party libraries can help you do that, like: https://www.npmjs.com/package/json-fn
If you want to use
JSON.stringify
to also convert functions and native objects you can pass a converter function as the second argument:Return
undefined
from the converter function if you want to omit the result.The third parameter is how many spaces you want the output to indent (optional).
JSON can't stringify functions at all, it handles them just like
undefined
ornull
values. You can check the exact algorithm at EcmaScript 5.1 §15.12.3, see also the description at MDN.However you of course can stringify function expression by casting them to a string, try
JSON has no means to represent a function. It is a data format designed for simplicity and compatibility across languages (and a function is the last thing that will be cross-language compatible).
From the docs for JSON.stringify: