Как одной функции присвоить другую с параметрами без ее вызова
Собсно сабж такой.
Не могу понять возможно ли. Нужно чтобы функция 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, время: 23:26. |