// Numbers have a native "toString" method
var number = 5;
number.toString(); //-> "5"
Number.prototype.toString = function () {
   return String( this + 1);
};

number.toString(); //-> "6"

Этот пример может Вас насторожить, но динамизм JavaScript позволяет делать поистине безбашенные вещи. Помните, что Вы работаете в общедоступной среде, не делайте необдуманных вещей, которые могут легко повредит другие скрипты на странице.

Функция console.log

Многие из примеров кода в этой книге будут использовать функцию console.log для вывода данных в консоль браузера. Она поддерживается броузерами Firefox (с помощью расширения Firebug) и Safari, и работает не так навязчиво, в отличие популярной функции alert, где сообщения выводятся в диалоговое окно, которое надо закрывать. Считайте функцию console.log своего рода оператором print в JavaScript. Вы никогда не будете использовать ее в готовом коде, но ее удобно использовать при изучении и отладке.

Функции тоже являются объектами

Функции в JavaScript это "неугнетенные плебеи", как в PHP или Java. Они полноправные "граждане". Функция может быть назначена переменной, может быть передана как параметр в другую функцию, и может быть возвращена из функции. (У Вас может быть функция, которая принимает функцию как параметр и возвращает функцию!)

Вам вероятно знаком следующий синтаксис определения функции:

function lambda() {
   return "foo";
}

А вот реже используемый синтаксис, но почти эквивалентный:

var lambda = function () {
   return "foo";
};

В обоих примерах описывается функция, которой назначается имя lambda. В обоих примерах функцию можно вызвать, написав lambda(). И в обоих примерах, можно использовать lambda также гибко, как используется любой другой тип данных.

предыдущая   следующая страница

7

Hosted by uCoz