JSON.stringify() method not only stringifies an object but also removes any function if found inside that object. So to make the function not to be deleted it should be converted into a string and then only JSON.stringify() method should be applied.
In the following example since the function is not converted into a string, it is deleted when operated by JSON.stringify() method and other properties were displayed as shown in the output.
Example
<html> <body> <p id="stringify"></p> <script> var person = { name: function () {return Ram + Rahim;}, designation:"Developer" , city: "Hyderabad" }; var myJSON = JSON.stringify(person); document.getElementById("stringify").innerHTML = myJSON; </script> </body> </html>
Output
{"designation":"Developer","city":"Hyderabad"}
In the following example, before getting operated by JSON.stringify() method, the function was converted to a string using toString() method. So the function was not deleted when operated by JSON.stringify() method.
Example
<html> <body> <p id="stringify"></p> <script> var obj = { name: function () {return Ram + Rahim;}, designation:"Developer" , city: "Hyderabad" }; obj.name = obj.name.toString(); var myJSON = JSON.stringify(obj); document.getElementById("stringify").innerHTML = myJSON; </script> </body> </html>
Output
{"name":"function () {return Ram + Rahim;}","designation":"Developer","city":"Hyderabad"}