Показать сообщение отдельно
  #1 (permalink)  
Старый 24.07.2012, 23:27
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

JSON.stringify и .valueOf
Всем привет.
Конструкторы Number и String позволяют пихать в их экземпляры любые свойства, при этом, при стрингификации, получаем или строку или число, соответственно:
var string = new String( 'WTF' ),
number = new Number( 42 );
string.a = 12321;
number.b = 'qwerw';
number.c = {};

var json = JSON.stringify( {x: number, y: string } );
alert(json)

Как повторить тот же эффект для кастомного конструктора?
function X () {}
X.prototype.valueOf = function() { return 42; }

var json = JSON.stringify( { a: new X });
alert( json );
Мне нужно, чтоб вместо "пустого объекта" в json попало 42 (причем, тип заранее не известен: это может быть как число или строка, так и null).
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием