код 1Откуда вы знаете, что вам нужно использовать функцию() {}?
$(document).ready(function() {
$('.poem-stanza').addClass('highlight');
});
код 2
$(document).ready(
$('.poem-stanza').addClass('highlight');
);
код 1Откуда вы знаете, что вам нужно использовать функцию() {}?
$(document).ready(function() {
$('.poem-stanza').addClass('highlight');
});
код 2
$(document).ready(
$('.poem-stanza').addClass('highlight');
);
Вы читаете документацию по методу, которому вы звоните (метод ready
в данном случае) и посмотреть, какие ценности он ожидает.
Если он ожидает какую-либо функцию, используйте свой первый пример.
Если он ожидает объект jQuery *, используйте второй пример (поскольку возвращаемое значение из метода addClass является объектом jQuery).
* Я предполагаю, что вы используете jQuery, поскольку я думаю, что это единственная библиотека, которая имеет функции, названные так. Я мог ошибаться, хотя, $ is a stupid name for a function.
Если функция принимает функцию в качестве параметра, код 2 не будет работать, потому что
$('.poem-stanza').addClass('highlight');
не определение функции (это утверждение)
Чтобы создать объект, представляющий функцию , следует использовать один из следующих синтаксисов:
function myFunc() {
}
или
var myFunc = function() {
}
или
var myFunc = new Function("...javascript code...");
После того, как один из приведенных выше определений, MyFunc будет держать объект, представляющий функцию.
Хех, вот как это: D
Нет, серьезно, когда вы должны сделать что-то внутри готов(); или аналогичные методы, вы используете. функция. Другие методы принимают параметры. Документы предоставят вам подробную информацию.
Как и другие ребята, вам нужно посмотреть документацию, чтобы увидеть, какие параметры функции принимает. Тем не менее, важная часть здесь такова: если у вас есть инструкция, она запускается, когда интерпретатор сталкивается с ней. Если вы определяете функцию и передаете ее в готовую функцию, функция ready принимает решение о ее выполнении. В этом конкретном случае, когда документ готов. Другим примером является setTimeout, который ожидает функцию и количество миллисекунд в качестве параметров.
Правило таково: если вы хотите передать какой-либо код какой-либо другой функции, вы должны обернуть его в функцию. Если вы используете (развернутый) оператор, он будет выполнен, и результат будет передан функции.
Если вам нужна функция обратного вызова, вы используете ключевое слово function. Когда вы используете такие методы, как ready
и click
, вы не хотите, чтобы код запускался при настройке события, но когда событие происходит, вам нужна функция обратного вызова.
Использование анонимной функции аналогично использованию именованной функции, которую вы определили ранее.В таком примере легче следить за тем, что происходит:
function onReady() {
$('.poem-stanza').addClass('highlight');
}
$(document).ready(onReady);
lol, $ вещь немного педантична. – xenon
Я не согласен с вашим «$ - глупое имя для функции». запись в блоге, но ссылка «комментарий» приводит к вашей странице контакта, поэтому я пишу ее здесь: где первый пункт цитируется, и почему это так? Ваша третья точка подсчитывает для каждого имени функции не только $. И в jquery функция $ не только для селекторов, но и сокращенная для document.ready, как вы можете прочитать здесь: http://docs.jquery.com/Core/jQuery#callback –
Цитата из ECMAScript Спецификация. Названия функций обычно дают некоторое представление о том, что они делают - знак доллара не делает. И великолепно - функция перегружена, что делает ее еще более неясной. – Quentin