Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2015, 17:49
Интересующийся
Отправить личное сообщение для dimy44 Посмотреть профиль Найти все сообщения от dimy44
 
Регистрация: 12.01.2015
Сообщений: 15

антипод eval
Поскажите, какая функция в js является антиподом eval. В python это repr. Чтоб я мог, скажем, массив сохранить в файл в строковом представлении, а при надобности гарантированно мог восстановить с помощью eval.
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2015, 18:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

dimy44,
http://learn.javascript.ru/json
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2015, 18:12
Интересующийся
Отправить личное сообщение для dimy44 Посмотреть профиль Найти все сообщения от dimy44
 
Регистрация: 12.01.2015
Сообщений: 15

Понял, спасибо.
Ответить с цитированием
  #4 (permalink)  
Старый 15.01.2015, 21:56
Аспирант
Посмотреть профиль Найти все сообщения от registrant
 
Регистрация: 15.01.2015
Сообщений: 39

dimy44,
Такое возможно только в говноязыках. В js этого сделать невозможно, в общем случае. это возможно только для "ненастоящих" объектов, которые ты конвенциально, по взаимной договоренности, используешь как таблицу.
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2015, 17:21
Аспирант
Отправить личное сообщение для VANjs Посмотреть профиль Найти все сообщения от VANjs
 
Регистрация: 10.01.2013
Сообщений: 40

Сообщение от registrant
... Такое возможно только в говноязыках. В js этого сделать невозможно...
ну типа js это супер язык, но как раз в нем, то что именно требуется сделать, а вот и низзя!!!


Логика отдыхает )))))))))
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2015, 21:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Ну ещё можно так:
function foo(){
   bar('парам пам пам')
}

alert(foo.toString())
alert(foo.toSource())

Но в твоём случае нужен именно json.
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 20.01.2015, 16:23
Аспирант
Посмотреть профиль Найти все сообщения от registrant
 
Регистрация: 15.01.2015
Сообщений: 39

Сообщение от VANjs
Логика отдыхает
андронный коллайдер -- зачетная штука, но ей нельзя забивать гвозди, какая жалость. Вот она где, логика...
Ответить с цитированием
  #8 (permalink)  
Старый 20.01.2015, 19:53
Интересующийся
Отправить личное сообщение для dimy44 Посмотреть профиль Найти все сообщения от dimy44
 
Регистрация: 12.01.2015
Сообщений: 15

Сообщение от registrant Посмотреть сообщение
dimy44,
Такое возможно только в говноязыках. В js этого сделать невозможно, в общем случае. это возможно только для "ненастоящих" объектов, которые ты конвенциально, по взаимной договоренности, используешь как таблицу.
Я привел пример из Python. Вы действительно считаете питон говноязыком? Хм...
Ответить с цитированием
  #9 (permalink)  
Старый 20.01.2015, 19:57
Аспирант
Посмотреть профиль Найти все сообщения от registrant
 
Регистрация: 15.01.2015
Сообщений: 39

Сообщение от dimy44
Вы действительно считаете питон говноязыком? Хм...
Да.
Ответить с цитированием
  #10 (permalink)  
Старый 20.01.2015, 20:05
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

В современном JS все объекты имеют встроенный метод toSource (это и есть антипод eval), который возвращает исходный код объекта, например,

alert({a: 1, v: 2}.toSource());
alert([1, 2, 3].toSource());
alert(function () {
  alert(121);
}.toSource());


Про JSON уже говорилось, но это частный случай, т.к. (JS != JSON).

Также ещё у объектов есть встроенный метод toString, но результат его работы в большинстве случае отличается от toSource, т.к. данный метод возвращает строковое представление объекта, а не его исходный код, например,

alert({a: 1, v: 2}.toString());
alert([1, 2, 3].toString());
alert(function () {
  alert(121);
}.toString());


Разумеется, эти базовые методы можно переопределять своими.

Цитата:
Я привел пример из Python. Вы действительно считаете питон говноязыком? Хм...
Да это просто тролль, их тут полно на форуме, можешь игнорить его
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 20.01.2015 в 21:03.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятное(для меня) поведение eval FanAizu Общие вопросы Javascript 1 06.05.2014 19:43
Обработка json tion Общие вопросы Javascript 15 12.05.2013 18:39
Как вызвать eval в контексте другой функции для доступа к ее локальным переменным? Почемучкин Общие вопросы Javascript 8 29.10.2012 22:31
Не работает eval в IE ..::Silence::.. Общие вопросы Javascript 8 25.03.2009 13:16
Roll-up menu Tanya Общие вопросы Javascript 5 29.08.2008 17:28