Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 16.06.2012, 14:31
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Функция хранится в переменной в виде текста, вот что я хотел сказать и потом пояснил, за ту неточность пардон.
Ответить с цитированием
  #12 (permalink)  
Старый 16.06.2012, 15:12
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Ладно, Maxmaxmахimus, покажи мастер-класс: какими словами (только нормальными, без сленга) описать результат вывода alert-а в этом примере?

var a = function (s) {
  alert(s)
}

alert(a)
Ответить с цитированием
  #13 (permalink)  
Старый 16.06.2012, 16:58
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от bes
Функция хранится в переменной в виде текста,
http://es5.javascript.ru/x13.html#x13.2
Цитата:
объект типа Function создаётся следующим образом:
1. Создать новый родной объект ECMAScript. Пусть F будет этим объектом.
....
3. Внутреннему свойству [[Class]] для F присвоить "Function".
....
6. Установить внутреннее свойство [[Call]] для F, как описано в пункте 13.2.1.
....
20. Вернуть F.
Она хранится как вызываемый объект со специальным типом.

Последний раз редактировалось melky, 16.06.2012 в 17:01.
Ответить с цитированием
  #14 (permalink)  
Старый 16.06.2012, 18:28
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Maxmaxmахimus, не кодом.

Сообщение от melky
Она хранится как вызываемый объект со специальным типом.
Здесь логика понятна: раз объект, значит и хранится как объект.
Как правильно на словах обосновать текст функции, выводимый в alert()
Ответить с цитированием
  #15 (permalink)  
Старый 16.06.2012, 18:37
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

bes,
alert это тоже метод глобального объекта, который при вызове приводит переданное ему значение к строке. объекты приводятся к строке путём вызова метода toString(). выше максмакстампакс показал как можно, переопределив этот метод изменить поведение alert().
Ответить с цитированием
  #16 (permalink)  
Старый 16.06.2012, 18:40
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

ок, всё встало на свои места, tadjik1, спасибо
Ответить с цитированием
  #17 (permalink)  
Старый 16.06.2012, 18:51
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

здесь + приводит к строке
Ответить с цитированием
  #18 (permalink)  
Старый 16.06.2012, 18:53
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

alert(  typeof (function (){} + function (){}) )
Ответить с цитированием
  #19 (permalink)  
Старый 16.06.2012, 19:54
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

var a = new Boolean(false);
if(a) alert(a);
Ответить с цитированием
  #20 (permalink)  
Старый 16.06.2012, 20:04
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

function q (){}
q.valueOf = function(){
  return true
}

function w (){}
w.valueOf = function(){
  return false
}


alert( q + w )

Далее можно не продолжать
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача переменной из функции в другую tkachka Общие вопросы Javascript 5 19.01.2012 17:01
Как реализовать переход с одной страницы на другую с помощью клавиш "стрелок" bazilio2010 Общие вопросы Javascript 6 13.11.2011 23:58
Можно ли передать переменую grid из одной функции в другую alexrzl ExtJS 1 16.11.2010 18:33
Как передать значение по ссылке на другую страницу сайта Rollo Общие вопросы Javascript 7 18.10.2010 15:02
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59