Если Вы возвратите "false" от своей функции, то это остановит распространение событий, поэтому только Ваш первый обработчик событий будет инициирован (т.е. Ваша привязка не будет видеть щелчок).
$("div.clickable").click(
function()
{
window.location = $(this).attr("url");
return false;
});
Видят , event.preventDefault () по сравнению с ложью возврата для получения дополнительной информации о возвращают false по сравнению с preventDefault.
Давайте посмотрим на классическое закрытие надстройки из Что такое замыкание .
(define (add a)
(lambda (b)
(+ a b)))
(define add3 (add 3))
(add3 4) returns 7
В приведенном выше лямбда-выражении a
- это свободная переменная , которая определена в ссылке в Википедии как:
a переменная, на которую ссылается функция это не локальная переменная или аргумент этой функции. Повышение стоимости свободная переменная, которая была связана (закрыто) с закрытием.
Возвращаясь к
def filesEnding(query: String) =
filesMatching(_.endsWith(query))
Неявная функция x => x.endsWith (query)
- это функция первого класса, которой присваивается значение первого класса сопоставитель
и _ .ndsWith ()
закрывается над запросом
, аналогично тому, как 3 закрывает a
в ( добавить 3)
. (add3 4)
эквивалент выполняется matcher (file.getName)
.
Править : Сложная часть - это функция в Scala, называемая анонимными функциями синтаксиса заполнителя. Используя _
вместо отправителя или параметра, Scala автоматически создает анонимную функцию, которую мы можем рассматривать как лямбда-выражение.
Например,
_ + 1 creates x => x + 1
_ * _ creates (x1, x2) => x1 * x2
_.endsWith(query) creates x => x.endsWith(query)
Внутри функции x => x.endsWith (query)
, query
удовлетворяет двум требованиям, чтобы быть свободной переменной:
query
не является локальной переменной, определенной в функции (локальной переменной нет). query
не является аргументом функции (единственный аргумент - x
).