Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để không xóa một hàm bên trong một đối tượng khi phương thức JSON.stringify () được vận hành?


JSON.stringify () phương thức không chỉ chuỗi ký tự một đối tượng nhưng cũng xóa bất kỳ chức năng nào nếu được tìm thấy bên trong đối tượng đó. Vì vậy, để tạo ra chức năng không bị xóa nó nên được chuyển đổi thành chuỗi và sau đó chỉ JSON.stringify () phương pháp nên được áp dụng.

Trong ví dụ sau kể từ khi hàm không được chuyển đổi thành một chuỗi, nó bị xóa khi được vận hành bởi phương thức JSON.stringify () và các thuộc tính khác được hiển thị như được hiển thị trong đầu ra.

Ví dụ

<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>

Đầu ra

{"designation":"Developer","city":"Hyderabad"}

Trong ví dụ sau, trước khi được vận hành bởi JSON.stringify () phương thức, chức năng đã được chuyển đổi thành một chuỗi bằng cách sử dụng to Chuỗi () phương pháp. Vì vậy, hàm không bị xóa khi được vận hành bởi JSON.stringify () phương pháp.

Ví dụ

<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>

Đầu ra

{"name":"function () {return Ram + Rahim;}","designation":"Developer","city":"Hyderabad"}