Javascript.RU

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

Как одной функции присвоить другую с параметрами без ее вызова
Собсно сабж такой.
Не могу понять возможно ли.

Нужно чтобы функция b() вызывала функцию a(1), а с() вызывала функцию a(2).

Но не вызывать a() в момент описания b() и c()

function a(s){
	alert (s)
}

b = a(1) // но тут разумеется уже вызывается a()
с = a(2)

b() // вызываться должно только тут
c() // и тут


Как это реализовать?
Подскажите..
Ответить с цитированием
  #2 (permalink)  
Старый 14.06.2012, 15:29
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

function a(s){
	alert (s)
}

b = function () {
a(1) 
}// но тут разумеется уже вызывается a()

c = function () {
a(2)
}

b() // вызываться должно только тут
c() // и тут


Ну или так:
function a(s){
	return (s)
}

b = a(1) // но тут разумеется уже вызывается a()

c = a(2)

alert(b) // вызываться должно только тут
alert(c) // и тут
__________________
оляля, ололо

Последний раз редактировалось 9xakep, 14.06.2012 в 15:31.
Ответить с цитированием
  #3 (permalink)  
Старый 14.06.2012, 15:32
Интересующийся
Отправить личное сообщение для dmitryck Посмотреть профиль Найти все сообщения от dmitryck
 
Регистрация: 26.03.2012
Сообщений: 11

угу. точн.
спасибо..)
Ответить с цитированием
  #4 (permalink)  
Старый 14.06.2012, 19:12
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Сообщение от Maxmaxmахimus Посмотреть сообщение
>IE8
уже не кроссбраузерно...
Ответить с цитированием
  #5 (permalink)  
Старый 15.06.2012, 16:11
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Функция в js - это представляющий её текст, поэтому этот текст можно присваивать любым переменным.
Не совсем то, что вы хотели, но можно и так.
var a = function (s){
  alert(s)
}
b = a;
b(3);
Ответить с цитированием
  #6 (permalink)  
Старый 15.06.2012, 16:48
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

всё в яваскрипте объект, кроме строки и числа. хотя, если подумать, то они тоже объекты))
Ответить с цитированием
  #7 (permalink)  
Старый 15.06.2012, 16:54
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

это шутка такая была вообще-то

я просто к тому, что простые типы тоже имеют обёртки вроде Number() или String(), которые позволяют им иметь методы. разве не так?
Ответить с цитированием
  #8 (permalink)  
Старый 15.06.2012, 17:41
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Maxmaxmахimus
и давно ли?
Вы можете говорить абстрактно объект и т.п., но функция хранится в виде текста (для работы дальше можно не ходить: в виде последовательности чисел, последовательности состояний битов памяти...), когда ставим круглые скобки () у имени переменной, в которой хранится текст функции, происходит её вызов, то есть интерпретатор начинает работать с текстом этой функции и выполнять заложенные в ней действия, не?
Да и вообще программирование в некотором приближении - это работа с текстом, что-то пишем, транслятор это разбирает, что-то получаем.
Ответить с цитированием
  #9 (permalink)  
Старый 15.06.2012, 19:49
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Maxmaxmахimus,
var a = function (s) {
  alert(s)
}

alert(a)

Про то, что с функцией можно работать как с объектом, конечно, также надо знать.
Ответить с цитированием
  #10 (permalink)  
Старый 16.06.2012, 13:39
Профессор
Отправить личное сообщение для tadjik1 Посмотреть профиль Найти все сообщения от tadjik1
 
Регистрация: 07.06.2011
Сообщений: 315

Сообщение от Maxmaxmахimus Посмотреть сообщение
в ecma 9 типов данных из них 6 доступны на уровне скрипта
1. причем тут екма?
2. в javascript знаю только 6 (null, undefined, string, boolean, number, object). в конечном счете даже примитивный тип можно назвать похожим на объект, так как у него есть методы (toLowerCase(), у строки). кроме того
var str = 'string';
str.prop = 11;

не выведет ошибку именно из-за того, что у примитивного типа "строка" есть обёртка в виду String().

короче предлагаю закрыть тему.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача переменной из функции в другую 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