Как одной функции присвоить другую с параметрами без ее вызова
Собсно сабж такой.
Не могу понять возможно ли. Нужно чтобы функция b() вызывала функцию a(1), а с() вызывала функцию a(2). Но не вызывать a() в момент описания b() и c() function a(s){ alert (s) } b = a(1) // но тут разумеется уже вызывается a() с = a(2) b() // вызываться должно только тут c() // и тут Как это реализовать? Подскажите.. |
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) // и тут |
угу. точн.
спасибо..) |
Цитата:
|
Функция в js - это представляющий её текст, поэтому этот текст можно присваивать любым переменным.
Не совсем то, что вы хотели, но можно и так. var a = function (s){ alert(s) } b = a; b(3); |
всё в яваскрипте объект, кроме строки и числа. хотя, если подумать, то они тоже объекты))
|
это шутка такая была вообще-то
я просто к тому, что простые типы тоже имеют обёртки вроде Number() или String(), которые позволяют им иметь методы. разве не так? |
Цитата:
Да и вообще программирование в некотором приближении - это работа с текстом, что-то пишем, транслятор это разбирает, что-то получаем. |
Maxmaxmахimus,
var a = function (s) { alert(s) } alert(a) Про то, что с функцией можно работать как с объектом, конечно, также надо знать. |
Цитата:
2. в javascript знаю только 6 (null, undefined, string, boolean, number, object). в конечном счете даже примитивный тип можно назвать похожим на объект, так как у него есть методы (toLowerCase(), у строки). кроме того var str = 'string'; str.prop = 11; не выведет ошибку именно из-за того, что у примитивного типа "строка" есть обёртка в виду String(). короче предлагаю закрыть тему. |
Часовой пояс GMT +3, время: 08:29. |