Rambler медийный портал. Настройка почты Rambler – версия для ПК и для смартфона. Что Рамблер может предложить

Объекты

Объект является фундаментальным типом данных в языке JavaScript. Объект - это составное значение: он объединяет в себе набор значений (простых значений или других объектов) и позволяет сохранять и извлекать эти значения по именам.

Объект является неупорядоченной коллекцией свойств, каждое из которых имеет имя и значение. Имена свойств являются строками, поэтому можно сказать, что объекты отображают строки в значения. Такое отображение строк в значения может называться по-разному: возможно, вы уже знакомы с такой фундаментальной структурой данных, как «хеш», «словарь» или «ассоциативный массив». Однако объект представляет собой нечто большее, чем простое отображение строк в значения.

Помимо собственных свойств объекты в языке JavaScript могут также наследовать свойства от других объектов, известных под названием «прототипы». Методы объекта - это типичные представители унаследованных свойств, а «наследование через прототипы » является ключевой особенностью языка JavaScript.

Объекты в языке JavaScript являются динамическими - обычно они позволяют добавлять и удалять свойства - но они могут использоваться также для имитации статических объектов и «структур», которые имеются в языках программирования со статической системой типов. Кроме того, они могут использоваться (если не учитывать, что объекты отображают строки в значения) для представления множеств строк.

Любое значение в языке JavaScript, не являющееся строкой, числом, true, false, null или undefined, является объектом. И даже строки, числа и логические значения, не являющиеся объектами, могут вести себя как неизменяемые объекты (имеют объекты-обертки String, Number и т.п.).

Объекты являются изменяемыми значениями и операции с ними выполняются по ссылке, а не по значению. Если переменная x ссылается на объект, и выполняется инструкция var y = x; , в переменную y будет записана ссылка на тот же самый объект, а не его копия. Любые изменения, выполняемые в объекте с помощью переменной y , будут также отражаться на переменной x .

Свойство имеет имя и значение. Именем свойства может быть любая строка, включая и пустую строку, но объект не может иметь два свойства с одинаковыми именами. Значением свойства может быть любое значение, допустимое в языке JavaScript, или (в ECMAScript 5) функция чтения или записи (или обе).

В дополнение к именам и значениям каждое свойство имеет ряд ассоциированных с ним значений, которые называют атрибутами свойства :

    Атрибут writable определяет доступность значения свойства для записи.

    Атрибут enumerable определяет доступность имени свойства для перечисления в цикле for/in.

    Атрибут configurable определяет возможность настройки, т.е. удаления свойства и изменения его атрибутов.

До появления стандарта ECMAScript 5 все свойства в объектах, создаваемые программой, доступны для записи, перечисления и настройки. В ECMAScript 5 предусматривается возможность настройки атрибутов ваших свойств.

В дополнение к свойствам каждый объект имеет три атрибута объекта :

    Атрибут class содержит строку с именем класса объекта и определяет тип объекта.

    Флаг extensible (в ECMAScript 5) указывает на возможность добавления новых свойств в объект.

Наконец, ниже приводится описание некоторых терминов, которые помогут нам различать три обширные категории объектов в языке JavaScript и два типа свойств:

Объект базового языка

Это объект или класс объектов, определяемый спецификацией ECMAScript. Массивы, функции, даты и регулярные выражения (например) являются объектами базового языка.

Объект среды выполнения

Это объект, определяемый средой выполнения (такой как веб-браузер), куда встроен интерпретатор JavaScript. Объекты HTMLElement, представляющие структуру веб-страницы в клиентском JavaScript, являются объектами среды выполнения. Объекты среды выполнения могут также быть объектами базового языка, например, когда среда выполнения определяет методы, которые являются обычными объектами Function базового языка JavaScript.

Пользовательский объект

Любой объект, созданный в результате выполнения программного кода JavaScript.

Собственное свойство

Это свойство, определяемое непосредственно в данном объекте.

Унаследованное свойство

Это свойство, определяемое прототипом объекта.

Создание объектов

Объекты можно создавать с помощью литералов объектов, ключевого слова new и (в ECMAScript 5) функции Object.create() .

Литералы объектов

Самый простой способ создать объект заключается во включении в программу литерала объекта. Литерал объекта - это заключенный в фигурные скобки список свойств (пар имя/значение), разделенных запятыми. Именем свойства может быть идентификатор или строковый литерал (допускается использовать пустую строку). Значением свойства может быть любое выражение, допустимое в JavaScript - значение выражения (это может быть простое значение или объект) станет значением свойства.

Ниже приводится несколько примеров создания объектов:

Var empty = {}; // Объект без свойств var point = { x:0, y:0 }; // Два свойства var point2 = { x:point.x, y:point.y+1 }; // Более сложные значения var site = { "url site": "www..NET Framework", // и дефисами, поэтому исп. кавычки author: { // Значением этого свойства является firstname: "Alexandr", // объект. Обратите внимание, что surname: "Frolov" // имена этих свойств без кавычек. } };

В ECMAScript 5 (и в некоторых реализациях ECMAScript 3) допускается использовать зарезервированные слова в качестве имен свойств без кавычек. Однако в целом имена свойств, совпадающие с зарезервированными словами, в ECMA-Script 3 должны заключаться в кавычки. В ECMAScript 5 последняя запятая, следующая за последним свойством в литерале объекта, игнорируется. В большинстве реализаций ECMAScript 3 завершающие запятые также игнорируются, но IE интерпретирует их наличие как ошибку.

Литерал объекта - это выражение, которое создает и инициализирует новый объект всякий раз, когда производится вычисление этого выражения. Значение каждого свойства вычисляется заново, когда вычисляется значение литерала. Это означает, что с помощью единственного литерала объекта можно создать множество новых объектов, если этот литерал поместить в тело цикла или функции, которая будет вызываться многократно, и что значения свойств этих объектов могут отличаться друг от друга.

Создание объектов с помощью оператора new

Оператор new создает и инициализирует новый объект. За этим оператором должно следовать имя функции. Функция, используемая таким способом, называется конструктором и служит для инициализации вновь созданного объекта. Базовый JavaScript включает множество встроенных конструкторов для создания объектов базового языка. Например:

Var o = new Object(); // Создать новый пустой объект: то же, что и {} var a = new Array(); // Создать пустой массив: то же, что и var d = new Date(); // Создать объект Date, представляющий текущее время var r = new RegExp("js"); // Создать объект RegExp для операций сопоставления с шаблоном

Помимо этих встроенных конструкторов имеется возможность определять свои собственные функции-конструкторы для инициализации вновь создаваемых объектов. О том, как это делается, рассказывается в следующей статье.

Object.create()

Стандарт ECMAScript 5 определяет метод Object.create(), который создает новый объект и использует свой первый аргумент в качестве прототипа этого объекта. Дополнительно Object.create() может принимать второй необязательный аргумент, описывающий свойства нового объекта.

Object.create() является статической функцией, а не методом, вызываемым относительно некоторого конкретного объекта. Чтобы вызвать эту функцию, достаточно передать ей желаемый объект-прототип:

// obj наследует свойства x и y var obj = Object.create({x:1, y:2});

Чтобы создать объект, не имеющий прототипа, можно передать значение null, но в этом случае вновь созданный объект не унаследует ни каких-либо свойств, ни базовых методов, таких как toString() (а это означает, что этот объект нельзя будет использовать в выражениях с оператором +):

// obj2 не наследует ни свойств, ни методов var obj2 = Object.create(null);

Если в программе потребуется создать обычный пустой объект (который, например, возвращается литералом {} или выражением new Object()), передайте в первом аргументе Object.prototype:

// obj3 подобен объекту, созданному // с помощью {} или new Object() var obj3 = Object.create(Object.prototype);

Возможность создавать новые объекты с произвольными прототипами (скажем иначе: возможность создавать «наследников» от любых объектов) является мощным инструментом, действие которого можно имитировать в ECMAScript 3 с помощью функции, представленной в примере ниже:

// inherit() возвращает вновь созданный объект, наследующий свойства // объекта-прототипа p. Использует функцию Object.create() из ECMAScript 5, // если она определена, иначе используется более старый прием. function inherit(p) { if (p == null) throw TypeError(); // p не может быть значением null if (Object.create) // Если Object.create() определена... return Object.create(p); // использовать ее. var t = typeof p; // Иначе выяснить тип и проверить его if (t !== "object" && t !== "function") throw TypeError(); function f() {}; // Определить пустой конструктор. f.prototype = p; // Записать в его свойство prototype // ссылку на объект p. return new f(); // Использовать f() для создания // "наследника" объекта p. }

Реализация функции inherit() приобретет больше смысла, как только мы познакомимся с конструкторами в следующей статье. А пока просто считайте, что она возвращает новый объект, наследующий свойства объекта в аргументе. Обратите внимание, что функция inherit() не является полноценной заменой для Object.create(): она не позволяет создавать объекты без прототипа и не принимает второй необязательный аргумент, как Object.create().

Получение и изменение свойств

Получить значение свойства можно с помощью операторов точки (.) и квадратных скобок (). Слева от оператора должно находиться выражение, возвращающее объект. При использовании оператора точки справа должен находиться простой идентификатор, соответствующий имени свойства. При использовании квадратных скобок в квадратных скобках должно указываться выражение, возвращающее строку, содержащую имя требуемого свойства:

// Простой объект var user = { login:"kot86", name:"Alexandr", age:26 }; var login = user.login; // Получить свойство "login" объекта user var name = user.name; // Получить свойство "name" объекта user var age = user["age"]; // Получить свойство "age" объекта user

Чтобы создать новое свойство или изменить значение существующего свойства, также используются операторы точки и квадратные скобки, как в операциях чтения значений свойств, но само выражение помещается уже слева от оператора присваивания:

User.age = 28; // Изменить значение свойства "age" user["login"] = "kot84"; // Изменить значение свойства "login" user["surname"] = "Frolov"; // Создать новое свойство "surname"

В ECMAScript 3 идентификатор, следующий за точкой, не может быть зарезервированным словом: нельзя записать обращение к свойству o.for или o.class, потому что for является ключевым словом, а class - словом, зарезервированным для использования в будущем.

Если объект имеет свойства, имена которых совпадают с зарезервированными словами, для доступа к ним необходимо использовать форму записи с квадратными скобками: o["for"] и o["class"]. Стандарт ECMAScript 5 ослабляет это требование (как это уже сделано в некоторых реализациях ECMAScript 3) и допускает возможность использования зарезервированных слов после оператора точки.

Прототипы

Каждый объект в языке JavaScript имеет второй объект (или null, но значительно реже), ассоциированный с ним. Этот второй объект называется прототипом, и первый объект наследует от прототипа его свойства.

Все объекты, созданные с помощью литералов объектов, имеют один и тот же объект-прототип, на который в программе JavaScript можно сослаться так: Object.prototype .

Объекты, созданные с помощью ключевого слова new и вызова конструктора, в качестве прототипа получают значение свойства prototype функции-конструктора. Поэтому объект, созданный выражением new Object(), наследует свойства объекта Object.prototype, как если бы он был создан с помощью литерала в фигурных скобках {}. Аналогично прототипом объекта, созданного выражением new Array(), является Array.prototype, а прототипом объекта, созданного выражением new Date(), является Date.prototype.

Object.prototype - один из немногих объектов, которые не имеют прототипа: у него нет унаследованных свойств. Другие объекты-прототипы являются самыми обычными объектами, имеющими собственные прототипы.

Все встроенные конструкторы (и большинство пользовательских конструкторов) наследуют прототип Object.prototype. Например, Date.prototype наследует свойства от Object.prototype, поэтому объект Date, созданный выражением new Date(), наследует свойства от обоих прототипов, Date.prototype и Object.prototype. Такая связанная последовательность объектов-прототипов называется цепочкой прототипов.

Наследование

Объекты в языке JavaScript обладают множеством «собственных свойств» и могут также наследовать множество свойств от объекта-прототипа. Чтобы разобраться в этом, необходимо внимательно изучить механизм доступа к свойствам. В примерах этого раздела для создания объектов с определенными прототипами используется функция inherit(), показанная выше.

Предположим, что программа обращается к свойству x объекта obj. Если объект obj не имеет собственного свойства с таким именем, выполняется попытка отыскать свойство x в прототипе объекта obj. Если объект-прототип не имеет собственного свойства с этим именем, но имеет свой прототип, выполняется попытка отыскать свойство в прототипе прототипа. Так продолжается до тех пор, пока не будет найдено свойство x или пока не будет достигнут объект, не имеющий прототипа. Как видите, атрибут prototype объекта создает цепочку, или связанный список объектов, от которых наследуются свойства.

Var obj = {}; // obj наследует методы объекта Object.prototype obj.x = 1; // и обладает собственным свойством x. var p = inherit(obj); // p наследует свойства объектов obj и Object.prototype p.y = 2; // и обладает собственным свойством y. var q = inherit(p); // q наследует свойства объектов p, obj и Object.prototype q.z = 3; // и обладает собственным свойством z. var s = q.toString(); // toString наследуется от Object.prototype var d = q.x + q.y // Результат 3: x и y наследуются от obj и p

Теперь предположим, что программа присваивает некоторое значение свойству x объекта obj. Если объект obj уже имеет собственное свойство (не унаследованное) с именем x, то операция присваивания просто изменит значение существующего свойства. В противном случае в объекте obj будет создано новое свойство с именем x. Если прежде объект obj наследовал свойство x, унаследованное свойство теперь окажется скрыто вновь созданным собственным свойством с тем же именем.

Операция присваивания значения свойству проверит наличие этого свойства в цепочке прототипов, чтобы убедиться в допустимости присваивания. Например, если объект obj наследует свойство x, доступное только для чтения, то присваивание выполняться не будет. Однако если присваивание допустимо, всегда создается или изменяется свойство в оригинальном объекте и никогда в цепочке прототипов. Тот факт, что механизм наследования действует при чтении свойств, но не действует при записи новых значений , является ключевой особенностью языка JavaScript, потому что она позволяет выборочно переопределять унаследованные свойства:

Var unitcircle = { r:1 }; // Объект, от которого наследуется свойство var c = inherit(unitcircle); // c наследует свойство r c.x = 1; c.y = 1; // c определяет два собственных свойства c.r = 2; // c переопределяет унаследованное свойство console.log(unitcircle.r); // => 1: объект-прототип не изменился

Существует одно исключение из этого правила, когда операция присваивания значения свойству терпит неудачу или приводит к созданию/изменению свойства оригинального объекта. Если объект obj наследует свойство x и доступ к этому свойству осуществляется посредством методов доступа, то вместо создания нового свойства x в объекте obj производится вызов метода записи нового значения. Однако обратите внимание, что метод записи вызывается относительно объекта obj, а не относительно прототипа, в котором определено это свойство, поэтому, если метод записи определяет какие-либо свойства, они будут созданы в объекте obj, а цепочка прототипов опять останется неизменной.

Ошибки доступа к свойствам

Выражения обращения к свойствам не всегда возвращают или изменяют значение свойства. В этом разделе описываются ситуации, когда операции чтения или записи свойства терпят неудачу.

Попытка обращения к несуществующему свойству не считается ошибкой. Если свойство x не будет найдено среди собственных или унаследованных свойств объекта obj, выражение обращения к свойству obj.x вернет значение undefined.

Однако попытка обратиться к свойству несуществующего объекта считается ошибкой. Значения null и undefined не имеют свойств, и попытки обратиться к свойствам этих значений считаются ошибкой:

// Простой объект var user = { login:"kot86", name:"Alexandr", age:26 }; var a = user.password; // undefined: свойство отсутствует // Возбудит исключение TypeError. // Значение undefined не имеет свойства length var len = user.password.length;

Если нет уверенности, что user и user.password являются объектами (или ведут себя подобно объектам), нельзя использовать выражение user.password.length, так как оно может возбудить исключение. Ниже демонстрируются два способа защиты против исключений подобного рода:

// Более наглядный и прямолинейный способ var len = undefined; if (user) { if (user.password) len = user.password.length; } // Более краткая и характерная для JavaScript альтернатива // получения длины значения свойства password var len = user && user.password && user.password.length;

Попытки установить значение свойства для других значений не всегда оканчиваются успехом: некоторые свойства доступны только для чтения и не позволяют изменять их значения. Кроме того, некоторые объекты не позволяют добавлять в них новые свойства. Однако самое интересное, что подобные неудачи, как правило, не приводят к возбуждению исключения:

// Свойства prototype встроенных конструкторов доступны только для чтения Object.prototype = 0; // Присваивание не возбудит исключения; // значение Object.prototype не изменится

Этот исторически сложившийся недостаток JavaScript исправлен в строгом режиме, определяемом стандартом ECMAScript 5. Все неудачные попытки изменить значение свойства в строгом режиме приводят к исключению TypeError.

Правила, позволяющие определить, когда попытка выполнить операцию присваивания завершится успехом, а когда неудачей, просты и понятны, но их сложно выразить в достаточно краткой форме. Попытка присвоить значение свойству p объекта obj потерпит неудачу в следующих случаях:

    Объект obj имеет собственное свойство p, доступное только для чтения: нельзя изменить значение свойства, доступного только для чтения. (Обратите, однако, внимание на метод defineProperty(), который представляет собой исключение, позволяющее изменять значения настраиваемых свойств, доступных только для чтения.)

    Объект obj имеет унаследованное свойство p, доступное только для чтения: унаследованные свойства, доступные только для чтения, невозможно переопределить собственными свойствами с теми же именами.

    Объект obj не имеет собственного свойства p; объект obj не наследует свойство p с методами доступа и атрибут extensible объекта obj имеет значение false. Если свойство p отсутствует в объекте obj и для него не определен метод записи, то операция присваивания попытается добавить свойство p в объект obj. Но поскольку объект obj не допускает возможность расширения, то попытка добавить в него новое свойство потерпит неудачу.

Удаление свойств

Оператор delete удаляет свойство из объекта. Его единственный операнд должен быть выражением обращения к свойству. Может показаться удивительным, но оператор delete не оказывает влияния на значение свойства - он оперирует самим свойством:

// Простой объект var user = { login:"kot86", name:"Alexandr", age:26 }; delete user.login; // Теперь объект user не имеет свойства login delete user["name"]; // Теперь объект user не имеет свойства name

Оператор delete удаляет только собственные свойства и не удаляет унаследованные. (Чтобы удалить унаследованное свойство, необходимо удалять его в объекте-прототипе, в котором оно определено. Такая операция затронет все объекты, наследующие этот прототип.)

Выражение delete возвращает значение true в случае успешного удаления свойства или когда операция удаления не привела к изменению объекта (например, при попытке удалить несуществующее свойство). Выражение delete также возвращает true, когда этому оператору передается выражение, не являющееся выражением обращения к свойству:

Obj = {x:1}; // obj имеет собственное свойство x и наследует toString delete obj.x; // Удалит x и вернет true delete obj.x; // Ничего не сделает (x не существует) и вернет true delete obj.toString; // Ничего не сделает (toString не собственное свойство) и вернет true delete 1; // Бессмысленно, но вернет true

Оператор delete не удаляет ненастраиваемые свойства, атрибут configurable которых имеет значение false. (Однако он может удалять настраиваемые свойства нерасширяемых объектов.) Ненастраиваемыми являются свойства встроенных объектов, а также свойства глобального объекта, созданные с помощью инструкций объявления переменных и функций. Попытка удалить ненастраиваемое свойство в строгом режиме вызывает исключение TypeError. В нестрогом режиме (и в реализациях ECMAScript 3) в таких случаях оператор delete просто возвращает false:

Delete Object.prototype; // Удаление невозможно - ненастраиваемое свойство var x = 1; // Объявление глобальной переменной delete this.x; // Это свойство нельзя удалить function f() {} // Объявление глобальной функции delete this.f; // Это свойство также нельзя удалить

Проверка существования свойств

Объекты в языке JavaScript можно рассматривать как множества свойств, и нередко бывает полезно иметь возможность проверить принадлежность к множеству - проверить наличие в объекте свойства с данным именем. Выполнить такую проверку можно с помощью оператора in , с помощью методов hasOwnProperty() и propertyIsEnumerable() или просто обратившись к свойству.

Оператор in требует, чтобы в левом операнде ему было передано имя свойства (в виде строки) и объект в правом операнде. Он возвращает true, если объект имеет собственное или унаследованное свойство с этим именем:

Var obj = { x:1 } "x" in obj; // true: obj имеет собственное свойство "x" "y" in obj; // false: obj не имеет свойства "y" "toString" in obj; // true: obj наследует свойство toString

Метод hasOwnProperty() объекта проверяет, имеет ли объект собственное свойство с указанным именем. Для наследуемых свойств он возвращает false:

Var obj = { x:1 } obj.hasOwnProperty("x"); // true: obj имеет собственное свойство "x" obj.hasOwnProperty("y"); // false: obj не имеет свойства "y" obj.hasOwnProperty("toString"); // false: toString - наследуемое свойство

Метод propertyIsEnumerable() накладывает дополнительные ограничения по сравнению с hasOwnProperty(). Он возвращает true, только если указанное свойство является собственным свойством, атрибут enumerable которого имеет значение true. Свойства встроенных объектов не являются перечислимыми. Свойства, созданные обычной программой на языке JavaScript, являются перечислимыми, если не был использован один из методов ECMAScript 5, представленных ниже, которые делают свойства неперечислимыми.

Часто вместо оператора in достаточно использовать простое выражение обращения к свойству и использовать оператор!== для проверки на неравенство значению undefined:

Var obj = { x:1 } obj.x !== undefined; // true: obj имеет свойство "x" obj.y !== undefined; // false: obj не имеет свойства "y" obj.toString !== undefined; // true: obj наследует свойство toString

Однако оператор in отличает ситуации, которые неотличимы при использовании представленного выше приема на основе обращения к свойству. Оператор in отличает отсутствие свойства от свойства, имеющего значение undefined.

Перечисление свойств

Вместо проверки наличия отдельных свойств иногда бывает необходимо обойти все имеющиеся свойства или получить список всех свойств объекта. Обычно для этого используется цикл for/in, однако стандарт ECMAScript 5 предоставляет две удобные альтернативы.

Инструкция цикла for/in выполняет тело цикла для каждого перечислимого свойства (собственного или унаследованного) указанного объекта, присваивая имя свойства переменной цикла. Встроенные методы, наследуемые объектами, являются неперечислимыми, а свойства, добавляемые в объекты вашей программой, являются перечислимыми (если только не использовались функции, описываемые ниже, позволяющие сделать свойства неперечислимыми). Например:

// Простой объект с тремя перечислимыми свойствами var user = { login:"kot86", name:"Alexandr", age:26 }; user.propertyIsEnumerable("toString"); // false, toString - встроенный метод for (n in user) console.log(n);

Некоторые библиотеки добавляют новые методы (или другие свойства) в объект Object.prototype, чтобы они могли быть унаследованы и быть доступны всем объектам. Однако до появления стандарта ECMAScript 5 отсутствовала возможность сделать эти дополнительные методы неперечислимыми, поэтому они оказывались доступными для перечисления в циклах for/in. Чтобы решить эту проблему, может потребоваться фильтровать свойства, возвращаемые циклом for/in. Ниже приводятся два примера реализации такой фильтрации:

For (n in user) { if (!user.hasOwnProperty(n)) continue; console.log(n); } for (n in user) { if (typeof user[n] === "function") continue; console.log(n); }

В дополнение к циклу for/in стандарт ECMAScript 5 определяет две функции, перечисляющие имена свойств. Первая из них, Object.keys() , возвращает массив имен собственных перечислимых свойств объекта.

Вторая функция ECMAScript 5, выполняющая перечисление свойств - Object.getOwnPropertyNames() . Она действует подобно функции Object.keys(), но возвращает имена всех собственных свойств указанного объекта, а не только перечислимые. В реализациях ECMAScript 3 отсутствует возможность реализовать подобные функции, потому что ECMAScript 3 не предусматривает возможность получения неперечислимых свойств объекта.

Методы чтения и записи свойств

Выше уже говорилось, что свойство объекта имеет имя, значение и набор атрибутов. В ECMAScript 5 значение может замещаться одним или двумя методами, известными как методы чтения (getter) и записи (setter) . Свойства, для которых определяются методы чтения и записи, иногда называют свойствами с методами доступа , чтобы отличать их от свойств с данными, представляющих простое значение.

Когда программа пытается получить значение свойства с методами доступа, интерпретатор вызывает метод чтения (без аргументов). Возвращаемое этим методом значение становится значением выражения обращения к свойству. Когда программа пытается записать значение в свойство, интерпретатор вызывает метод записи, передавая ему значение, находящее справа от оператора присваивания. Этот метод отвечает за «установку» значения свойства. Значение, возвращаемое методом записи, игнорируется.

В отличие от свойств с данными, свойства с методами доступа не имеют атрибута writable. Если свойство имеет оба метода, чтения и записи, оно доступно для чтения/записи. Если свойство имеет только метод чтения, оно доступно только для чтения. А если свойство имеет только метод записи, оно доступно только для записи (такое невозможно для свойств с данными) и попытки прочитать значение такого свойства всегда будут возвращать undefined.

Самый простой способ определить свойство с методами доступа заключается в использовании расширенного синтаксиса определения литералов объектов:

Var obj = { // Обычное свойство с данными data_prop: value, // Свойство с методами доступа определяется как пара функций get accessor_prop() { /* тело функции */ }, set accessor_prop(value) { /* тело функции */ } };

Свойства с методами доступа определяются как одна или две функции, имена которых совпадают с именем свойства и с заменой ключевого слова function на get и/или set.

Обратите внимание, что не требуется использовать двоеточие для отделения имени свойства от функции, управляющей доступом к свойству, но по-прежнему необходимо использовать запятую после тела функции, чтобы отделить метод от других методов или свойств с данными.

Для примера рассмотрим следующий объект, представляющий декартовы координаты точки на плоскости. Для представления координат X и Y в нем имеются обычные свойства с данными, а также свойства с методами доступа, позволяющие получить эквивалентные полярные координаты точки:

Var p = { // x и y обычные свойства с данными, доступные для чтения/записи x: 1.0, y: 1.0, // r - доступное для чтения/записи свойство с двумя методами доступа. // Не забывайте добавлять запятые после методов доступа get r() { return Math.sqrt(this.x*this.x + this.y*this.y); }, set r(newvalue) { var oldvalue = Math.sqrt(this.x*this.x + this.y*this.y); var ratio = newvalue/oldvalue; this.x *= ratio; this.y *= ratio; }, // theta - доступное только для чтения свойство с единственным методом чтения get theta() { return Math.atan2(this.y, this.x); } };

Обратите внимание на использование ключевого слова this в методах чтения и записи выше. Интерпретатор будет вызывать эти функции, как методы объекта, в котором они определены, т.е. в теле функции this будет ссылаться на объект точки. Благодаря этому метод чтения свойства r может ссылаться на свойства x и y, как this.x и this.y.

Свойства с методами доступа наследуются так же, как обычные свойства с данными, поэтому объект p, определенный выше, можно использовать как прототип для других объектов точек. В новых объектах можно определять собственные свойства x и y, и они будут наследовать свойства r и theta.

Атрибуты объекта

Все объекты имеют атрибуты prototype, class и extensible. Все эти атрибуты описываются в подразделах ниже.

Атрибут prototype

Атрибут prototype объекта определяет объект, от которого наследуются свойства. Важно понимать, что когда в программном коде встречается ссылка prototype, она обозначает обычное свойство объекта, а не атрибут prototype.

Атрибут prototype устанавливается в момент создания объекта. Для объектов, созданных с помощью литералов, прототипом является Object.prototype. Прототипом объекта, созданного с помощью оператора new, является значение свойства prototype конструктора. А прототипом объекта, созданного с помощью Object.create(), становится первый аргумент этой функции (который может иметь значение null).

Стандартом ECMAScript 5 предусматривается возможность определить прототип любого объекта, если передать его методу Object.getPrototypeOf() . В ECMAScript 3 отсутствует эквивалентная функция, но зачастую определить прототип объекта obj можно с помощью выражения obj.constructor.prototype.

Объекты, созданные с помощью оператора new, обычно наследуют свойство constructor , ссылающееся на функцию-конструктор, использованную для создания объекта. И как уже говорилось выше, функции-конструкторы имеют свойство prototype, которое определяет прототип объектов, созданных с помощью этого конструктора.

Обратите внимание, что объекты, созданные с помощью литералов объектов или Object.create(), получают свойство constructor, ссылающееся на конструктор Object(). Таким образом, constructor.prototype ссылается на истинный прототип для литералов объектов, но обычно это не так для объектов, созданных вызовом Object.create().

Чтобы определить, является ли один объект прототипом (или звеном в цепочке прототипов) другого объекта, следует использовать метод isPrototypeOf() . Чтобы узнать, является ли p прототипом obj, нужно записать выражение p.isPrototypeOf(obj). Например:

Var p = {x:1}; // Определить объект-прототип. var obj = Object.create(p); // Создать объект с этим прототипом. p.isPrototypeOf(obj); // => true: obj наследует p Object.prototype.isPrototypeOf(p); // => true: p наследует Object.prototype

Атрибут class

Атрибут class объекта - это строка, содержащая информацию о типе объекта. Ни в ECMAScript 3, ни в ECMAScript 5 не предусматривается возможность изменения этого атрибута и предоставляются лишь косвенные способы определения его значения. По умолчанию метод toString() (наследуемый от Object.prototype) возвращает строку вида:

Поэтому, чтобы определить класс объекта, можно попробовать вызвать метод toString() этого объекта и извлечь из результата подстроку с восьмого по предпоследний символ. Вся хитрость состоит в том, что многие методы наследуют другие, более полезные реализации метода toString(), и чтобы вызвать нужную версию toString(), необходимо выполнить косвенный вызов с помощью метода Function.call().

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

// Название класса объекта function classof(obj) { if (obj === null) return "Null"; if (obj === undefined) return "Undefined"; return Object.prototype.toString.call(obj).slice(8,-1); }

Этой функции classof() можно передать любое значение, допустимое в языке JavaScript. Числа, строки и логические значения действуют подобно объектам, когда относительно них вызывается метод toString(), а значения null и undefined обрабатываются особо.

Атрибут extensible

Атрибут extensible объекта определяет, допускается ли добавлять в объект новые свойства. В ECMAScript 3 все встроенные и определяемые пользователем объекты неявно допускали возможность расширения, а расширяемость объектов среды выполнения определялась каждой конкретной реализацией. В ECMAScript 5 все встроенные и определяемые пользователем объекты являются расширяемыми, если они не были преобразованы в нерасширяемые объекты, а расширяемость объектов среды выполнения по-прежнему определяется каждой конкретной реализацией.

Стандарт ECMAScript 5 определяет функции для получения и изменения признака расширяемости объекта. Чтобы определить, допускается ли расширять объект, его следует передать методу Object.isExtensible() . Чтобы сделать объект нерасширяемым, его нужно передать методу Object.preventExtensions() . Обратите внимание, что после того как объект будет сделан нерасширяемым, его нельзя снова сделать расширяемым. Отметьте также, что вызов preventExtensions() оказывает влияние только на расширяемость самого объекта. Если новые свойства добавить в прототип нерасширяемого объекта, нерасширяемый объект унаследует эти новые свойства.

Назначение атрибута extensible заключается в том, чтобы дать возможность «фиксировать» объекты в определенном состоянии, запретив внесение изменений. Атрибут объектов extensible часто используется совместно с атрибутами свойств configurable и writable, поэтому в ECMAScript 5 определяются функции, упрощающие одновременную установку этих атрибутов.

Метод Object.seal() действует подобно методу Object.preventExtensions(), но он не только делает объект нерасширяемым, но и делает все свойства этого объекта недоступными для настройки. То есть в объект нельзя будет добавить новые свойства, а существующие свойства нельзя будет удалить или настроить. Однако существующие свойства, доступные для записи, по-прежнему могут быть изменены.

После вызова Object.seal() объект нельзя будет вернуть в прежнее состояние. Чтобы определить, вызывался ли метод Object.seal() для объекта, можно вызвать метод Object.isSealed() .

Метод Object.freeze() обеспечивает еще более жесткую фиксацию объектов. Помимо того, что он делает объект нерасширяемым, а его свойства недоступными для настройки, он также делает все собственные свойства с данными доступными только для чтения. (Это не относится к свойствам объекта с методами доступа, обладающими методами записи; эти методы по-прежнему будут вызываться инструкциями присваивания.) Чтобы определить, вызывался ли метод Object.freeze() объекта, можно вызвать метод Object.isFrozen() .

Важно понимать, что Object.seal() и Object.freeze() воздействуют только на объект, который им передается: они не затрагивают прототип этого объекта. Если в программе потребуется полностью зафиксировать объект, вам, вероятно, потребуется зафиксировать также объекты в цепочке прототипов.

Сериализация объектов

Сериализация объектов - это процесс преобразования объектов в строковую форму представления, которая позднее может использоваться для их восстановления. Для сериализации и восстановления объектов JavaScript стандартом ECMAScript 5 предоставляются встроенные функции JSON.stringify() и JSON.parse() . Эти функции используют формат обмена данными JSON. Название JSON происходит от «JavaScript Object Notation» (форма записи объектов JavaScript), а синтаксис этой формы записи напоминает синтаксис литералов объектов и массивов в языке JavaScript:

Var obj = {x:1, y:{z:}}; // Определить испытательный объект var s = JSON.stringify(obj); // s == "{"x":1,"y":{"z":}}" var p = JSON.parse(s); // p - копия объекта obj

Синтаксис формата JSON является лишь подмножеством синтаксиса языка JavaScript и не может использоваться для представления всех возможных значений, допустимых в JavaScript. Поддерживаются и могут быть сериализованы и восстановлены: объекты, массивы, строки, конечные числовые значения, true, false и null. Значения NaN, Infinity и -Infinity сериализуются в значение null. Объекты Date сериализуются в строки с датами в формате ISO, но JSON.parse() оставляет их в строковом представлении и не восстанавливает первоначальные объекты Date.

Объекты Function, RegExp и Error и значение undefined не могут быть сериализованы или восстановлены. Функция JSON.stringify() сериализует только перечислимые собственные свойства объекта. Если значение свойства не может быть сериализовано, это свойство просто исключается из строкового представления. Обе функции, JSON.stringify() и JSON.parse(), принимают необязательный второй аргумент, который можно использовать для настройки процесса сериализации и/или восстановления, например, посредством определения списка свойств, подлежащих сериализации, или функции преобразования значений во время сериализации.

). Rambler в 2011 году окончательно стал обычным рядовым порталом (правда с многомиллионной аудиторией) и поиск у них теперь осуществляется с помощью когда-то заклятого «друга» Яндекса. Можете сами убедиться в идентичности их поисковых выдач по одним и тем же запросам.

Но тем не менее, я считаю обоснованным решение написать небольшой очерк о становлении, развитии и медленной смерти этой самой первой в рунете поисковой системы (Рамблер родился на год раньше Яндекса и Гугла, когда количество сайтов в русскоязычном сегменте сети измерялось всего лишь сотнями).

Поисковая система Рамблер уже таковой не является

Летом 2011 года между Яндексом и нашим героем был заключен договор, по которому поиск на этом мега-портале будет отныне вестись средствами зеркала рунета. Чуть ранее рассматривался вариант использования поиска Гугла, но соотечественник смог сделать более выгодное предложение (ему нельзя было проигрывать после утери партнерства с ).

Важным аспектом договора было разделение зон влияния между системами и Бегун. Изначально в рунете существовали три основных игрока на рынке контекста: Директ, Гугл Адвордс и Бегун. Каждая из них основную долю прибыли снимала именно в выдачах своих поисковиков.

Бегуну и так было не сладко, ибо его донор Rambler терял свою долю на рынке поиска с заметной регулярность. Хотя деваться ему особо было некуда, поскольку контрольный пакет Бегуна контекста принадлежал Рамблеру.

Ну, а тут, после прихода Яндекса, ему пришлось еще туже затянуть поясок — его блоки контекстной рекламы вынесли на периферию поисковой выдачи Рамблера (показываются справа), оставив самые доходные места конкуренту в лице Директа:

Конечно же, кроме поисковой выдачи Рамблера контекст от Бегуна показывается еще на ряде крупных порталов, а так же в сети партнеров, но его доля на рынке неуклонно падает.

Да и качество рекламодателей в этой системе оставляет желать лучшего, поэтому не многие вебмастера стремятся сотрудничать с Бегуном (заработки просто смешные). Обычно к нему обращаются в том случае, если сайту отказали и в (самый доходный, на мой взгляд, вариант, особенно при работе через Профит) и в .

Владельцы Бегуна рассчитывали, что с приходом Яндекса доля Рамблера в поисковом пироге рунета несколько повысится, что позволит им увеличить доходы, но этого не произошло и сейчас она составляет мизерную величину (чуть больше процента):

Одновременно с решением о прекращении работы над поисковым движком, владельцы Rambler решили провести ребрендинг . Во-первых, было изменено написание названия — латинские буквы были заменены русскими, что, собственно, нужно было сделать уже давно. Во-вторых, изменился и логотип компании, хотя для такого известного бренда логотип уже не имеет решающего значения:

Постепенно все сервисы, входящие в состав этого мега-портала, будут изменять свой внешний вид, чтобы соответствовать новому имиджу. Поможет ли это Рамблеру вылезти из той пропасти, в которую он себя сам загнал? Время покажет.

В состав этого портала входит много известных сервисов (вы там даже найдете браузер Нихром, и многое другое), которые развивались вместе с поисковой системой или же были куплены владельцами портала со временем (более подробное описание и назначение сервисов вы можете посмотреть в хелпе):

Как мне кажется, Рамблером сейчас пользуются в основном интернетчики со стажем, которые подсели на него и его сервисы (почту, карты, прайс.ру, ферра.ру, афишу и др.) в то время, когда он еще не свалился в «крутое пике».

Rambler скорее жив, чем мертв (надолго ли)

Примерно год назад читал пост одного блогера, который по совместительству является школьным учителем. Он в начале учебного года опрашивал школьников на предмет того, какой поисковой системой они пользуются. Что примечательно, никто из них не назвал Rambler, а многие и вообще о нем никогда не слышали. Отсюда можно сделать вывод, что для этого поисковика практически все уже находится в прошлом.

Единственным сервисом, который появился практически одновременно с поисковой системой и просуществовал до сих пор без особых изменений, является . Я о нем уже неоднократно писал, в том числе и в статье про . Фактически это сервис, предоставляющий бесплатный счетчик посещаемости и выстраивающий на основании его показаний Топ сайтов рунета, подразделяя их на соответствующие рубрики.

Внешний вид Rambler Top 100 не был еще подвергнут ребрендингу и выглядит он, по большому счету, не айс. Кроме того, несколько бросается в глаза способ монетизации, когда сверху и сбоку каталога выводятся рекламные блоки сильно смахивающие на . Ничего против них не имею, но у многих складывается впечатление несерьезности проекта (следующим шагом могут быть тизеры с содержанием для взрослых):

Хотя внизу все же имеются блоки контекстной рекламы, но опять от бывшего конкурента в лице Яндекса. Изначально рейтинг Топ 100 задумывался для упрощения жизни рекламодателей — выбрал рубрику и вот они лидеры в самом верху списка. Не знаю, насколько это актуально сейчас, но все свои сайты, я лично, в обязательном порядке добавляю в этот сервис Рамблера. Почему?

Дело в том, что из-за своего чудовищного возраста (был запущен весной 1997 года) сайт этого сервиса имеет огромный траст, а ссылки с его страниц не закрываются от индексации их поисковыми системами. Догадываетесь к чему я веду? Какой бы не был сервис Rambler Top 100 тормознутым и малоинформативным, участвовать в нем будет полезно для любого проекта.

Есть такой мощный буржуйский сервис по анализу сайтов и их ссылочной массы, как Ahrefs (Миша Шакин сделал его видеобзор). Так вот, там можно увидеть все обратные ссылки ведущие на ваш ресурс. Причем их можно будет отсортировать по внутреннему рейтингу этого сервиса (AhrefsRank), который косвенно отображает качество данной обратной ссылки.

В общем-то, сервис полезный и, возможно, после ребрендинга он будет выглядеть по человечески (ну, и его счетчик перестанет периодически тупить). Если говорить о Рамблере в целом, то упадок наметился уже довольно давно и решение о смене движка поиска было правильным, ибо их собственный поиск давно отстал от времени.

Причин упадка и снижения качества поиска в Rambler, наверное, было достаточно много, но, как видится мне, развал начался еще лет десять назад. Об этом пишет в своей книге «Жизнь внутри пузыря » великий и ужасный Игорь Ашманов, стоявший когда-то у руля этой поисковой системы.

Когда я писал статьи про историю создания Yandex и историю создания и особенности продвижения в Гугле, то упоминал один общий момент, который, по моему мнению, стал решающим в том, что оба этих поисковика процветают и успешно развиваются до сих пор. В обоих этих компаниях у руля остались те же самые люди (Брин и Пейдж, а так же Волож и Сегалович), которые и стояли у ее истоков.

Причем, эти люди являлись в обоих случаях энтузиастами своего дела, для которых доходы были вторичны, а первично было развитие и движение вперед их детищ. Именно этого я и не обнаружил в истории развития Рамблера. Как писал Игорь Ашманов, раскол произошел примерно десять лет назад и те, кто работал над поисковой системой изначально, были выкинуты из обоймы. Ну и, как бы, результат не замедлил сказаться.

Печальная история поисковика Рамблер

Вообще, история создания компании Rambler довольно интересна. Начиналась она в одном из подмосковных научных городков Пущино. Если вы помните , то знаете о том, что эта система была сначала ориентирована на военные нужды штатов, а потом довольно долго служила средством коммуникации для научных сообществ Америки (институтов).

Наукоград Пущино в начале девяностых годов прошлого века был примечателен тем, что стал первым городом Подмосковья, в котором появилась выделенная линия подключенная через Москву к интернету. Именно интерес обмена данными по последним исследованиям в научном мире и подхлестнули активистов чуть ли не своими силами проложить кабель до Москвы.

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

Ну, и логическим завершением полной интернетизации научного сообщества города своими собственными силами стало написание движка поисковой системы . За несколько месяцев с этой задачей успешно справился программист Дмитрий Крюков. Осенью 1996 года был приобретен домен rambler.ru, а 8 октября сайт с поисковиком стал доступен пользователям интернета.

Rambler означает в переводе с англицкого — бродяга. Особых конкурентов в рунете у него не было и поэтому до момента появления на горизонте Яндекса (осень 1997 года) он стал единоличным и абсолютным лидером поиска. Правда в то время сайтов в рунете было всего лишь в районе сотни.

Через полгода (весна 1997 года) появился успешно существующий и по сей день рейтинг Рамблер топ 100, о котором мы уже говорили чуть выше по тексту.

Дальнейшая история развития поисковой системы не столь однозначна и прямолинейна, как мы это могли видеть у Яндекса и Гугла. Вдаваться в подробности смены руководства и структурных изменений в компании мне не хочется, но сейчас в ней уже не работают те, кто был у ее истоков. Сам создатель Рамблера, Дмитрий Крюков, умер в 2009 году от инсульта. Игорь Ашманов создал свой собственный бренд по другую сторону баррикад — перешел на сторону сеошников ().

Хотя до определенного момента (2006—2007 годы) Rambler был на слуху и казалось, что перспективы его дальнейшего развития были очень даже благоприятными. Были открыты или приобретены новые сервисы, росла посещаемость и прибыль компании.

Например, в 2006 году Рамблер находился на втором месте рынка поиска рунета с очень даже весомым процентом:

Он даже серьезно опережал Гугл, что сейчас кажется несколько фантастичным. Но постепенно сказывались огрехи руководства и нежелание серьезно работать над движком поиска. Уже в последующие несколько лет (2007—2009) доля поиска Rambler снизилась в несколько раз:

Когда казалось, что хуже уже и некуда (около 5% от общего рынка), он доказал, что можно, и его доля снизилась еще в несколько раз за последующие годы (2009—2011):

Ну, а сейчас, когда на rambler.ru поиск осуществляется силами движка Яндекса (у меня, кстати говоря, ситуация в точности такая же), объективных причин падения его популярности из-за плохого качества поиска нет. Возможно, что доля рынка, равная примерно одному проценту, и есть текущая планка для этой некогда популярной поисковой системы, а теперь мега-портала.

В общем-то, не так уж и плохо, во всяком случае я готов поменяться с Рамблером местами, но боюсь, что его владельцы будут против. Говорить теперь об особенностях под Rambler не имеет смысла в силу использования им чужого движка.

Удачи вам! До скорых встреч на страницах блога сайт

посмотреть еще ролики можно перейдя на
");">

Вам может быть интересно

Статистика поисковых запросов Яндекса, Google и Рамблера, как и зачем работать с Вордстатом
Как добавить сайт в аддурилки (add url) Яндекса, Google и других поисковиков, регистрация в панелях для вебмастеров и каталогах
Расшифровка и разъяснение Seo сокращений, терминов и жаргонизмов
СЕО терминология, сокращения и жаргон
Релевантность и ранжирование - что это такое и какие факторы влияют на положение сайтов в выдаче Яндекса и Гугла
Апдейты Яндекса - какие бывают, как отслеживать ап Тиц, изменения поисковой выдачи и все другие обновления

Наверняка вы знаете о том, что сейчас в интернете существует большое количество поисковых систем, которые спустя некоторое время переросли в большие порталы, где присутствует немалое количество разнообразных сервисов. Каждый сервис, как правило, предназначен для предоставления определенной услуги, к примеру, это может быть создание почтового аккаунта, выход последних новостей, возможность загрузки пользователями различного рода файлов и так далее. Сегодня мы решили поговорить об одном из таких порталов. Поговорим о том, как установить «Рамблер» главной страницей, ведь этот ресурс в действительности является одним из лучших.

Начнем с обозревателя

Для начала вам потребуется запустить ваш любимый браузер, которым вы пользуетесь чаще всего, но пример мы будем сегодня приводить на браузере Internet Explorer, а также рассмотрим "Опера". Сделать «Рамблер» главной страницей в первом браузере очень просто. Если вы предварительно ознакомитесь с приведенной инструкцией, тогда сможете быстро и, главное, правильно установить эту поисковую систему к себе в браузер.

Настройка

После того как вы открыли браузер, вам необходимо в нем перейти на главную страницу поисковой системы «Рамблер». После перехода на главную страницу сверху возле логотипа вы сможете заметить небольшую кнопку «Сделать стартовой». Если по каким-то причинам не удалось найти эту кнопку, тогда вам следует поступить другим способом. Нажимаем в браузере кнопку "Сервис", после этого вы заметите выпадающее меню, где вам следует перейти на команду Перед вами откроется окно, где нужно найти вкладку "Общие", после этого ищем поле "Домашняя страница", а затем устанавливаем «Рамблер» главной страницей, не забываем нажимать кнопку «Ок» и «Применить». После того как вы проведете эту процедуру, сайт, который был открыт в настоящее время, а в нашем случае это главная страница крупного сервиса «Рамблер», установится в качестве стартового.

Обходной путь

Также хочется сказать о том, что вы можете вызвать команду «Свойства обозревателя» и без браузера, для этого просто выбираем вкладку "Пуск" и переходим в панель управления, а далее ищем вкладку "Свойства обозревателя". Как видите сами, в этом нет совершенно ничего сложного, конечно, в первый раз, возможно, это и будет для вас трудно, но в дальнейшем вы сможете разобраться, как это делается, главное - не спешите и следуйте приведенной инструкции. Если вы будете действовать последним способом через тогда после окончания установки главной страницы вам обязательно потребуется перезагрузить браузер. Когда вы открываете вновь браузер, вам обязательно следует убедиться, что поисковая система «Рамблер» открывается в автоматическом режиме, так оно и должно происходить всегда. Теперь вы знаете, как установить «Рамблер» стартовой страницей в браузере Internet Explorer, хотя и в любом другом браузере процедура будет похожая, в противном случае можно установить этот параметр через панель управления, соответственно, это нововведение будет использоваться для всех браузеров.

«Опера»

Давайте еще рассмотрим вариант, как установить «Рамблер» главной страницей в интернет-браузере Opera. Как правило, этот браузер имеет высокую популярность. Многим будет интересно, как установить «Рамблер» главной страницей. Ваша задача - перейти в меню браузера, а далее выбрать пункт "Настройки", ищем вкладку "Общие настройки" или просто нажимаем специальную комбинацию клавиш Ctrl+F12. На самом деле настройки в браузере "Опера" намного проще, чем в "Эксплоуэре", поэтому разобраться наверняка вам не составит труда. Удачи!

Rambler (Рамблер, перев. с англ. как странник, бродяга) - поисковая система интернет-холдинга Rambler Media Group.

Поисковик учитывает морфологию русского, украинского и английского языков, а также при поиске проходит по всем формам запросов и выдает результаты по степени соответствия запросу.

Rambler, одна из самых первых поисковых систем на интернет-рынке, сыграл огромную роль в становлении Рунета. С небольшой численностью (не более 5%) поисковик стоит на 3 месте после Яндекса и Google.

Аудитория поиска Рамблер в основе своей представлена людьми, пользующимися системой практически с момента ее появления.

Из преимуществ в Рамблере можно выделить тематический рейтинг сайтов, службу новостей, интернет-мессенджер, сервис онлайн-платежей, бесплатную почту и сервис контекстной рекламы Бегун, и т.д.

Хроника событий

В 1991 году группа ученых, а именно Сергей Лысаков, Юрий Ершов, Дмитрий Крюков, Виктор Воронков и Владимир Самойлов, из Института биохимии и физиологии микроорганизмов РАН взялись за разработку местной сети для обмена научной и технической информации в Пущино. Вскоре сеть была соединена с Москвой, а затем и с Интернетом. Проект быстро заработал и стал активно развиваться.

Официальным годом рождения поисковика считается 1996 год, когда Дмитрий Крюков создал службу поиска под названием Rambler. В 1996 году уже были созданы и работали другие поисковые системы, но они, в отличие от Рамблера, не были популярны.

В 1997 г. Дмитрием Крюковым была введена определенная шкала,классификатор Rambler’s Top100, отвечающий за определение авторитета сайтов в зависимости от частоты их посещения.

В 1999 г. должность директора по разработке и исследованиям, а затем и место исполнительного директора занял Игорь Ашманов, который ушел из компании в 2001году. Свою работу в Рамблере он описал в книге «Жизнь внутри пузыря», где детально описал деятельность компании за 1999-2001гг., а также то, почему Рамблер потерял свое 1 место на отечественном интернет-рынке.

В 2004 г. Rambler’s Top 100 выдали сертификат качества ISO 9001.

В 2007 г. пост генерального директора занял Марк Опзумер. В 2009 г. на основе технологии eXtended AGgregator был добавлен вертикальный поиск. 31 декабря 2009 года в Rambler уволился весь топ-менеджмент вместе с генеральным директором Марком Опзумером и в этом же году поисковик получил «Премию Рунета» в номинации «Культура и массовые коммуникации».

С апреля 2009г. Ольга Турищева, работавшая в компании «Вымпел» директором по развитию венчурного бизнеса, руководит Рамблером.

В конце июня 2011 г. Рамблер перешел на поисковую технологию Яндекса. Наряду с достоинствами у поисковика есть и недостатки, особенно по сравнению с Яндексом или Google. В поиске Rambler редко обновляются алгоритмы, практически нет фильтров для контроля качества интернет-источников по низкочастотным или среднечастотным запросам, что увеличивает количество спамных сайтов, низко котируется и алгоритм определения релевантности сайтов. В связи с этим доля Рамблера среди поисковых систем уменьшилась с 20 до 5%.

Что Рамблер может предложить?

Рамблер предоставляет не только многочисленные проекты развлекательного характера, но и следующие разделы:

  1. «Карты»- содержит подробные карты крупных городов. Пользователи могут узнать интересующие их адреса, проложить любые маршруты и быть в курсе дорожных пробок.
  2. В «Прайс.ру» можно найти любые каталоги товаров, информацию о скидках, обзоры новинок, планируемые мероприятия и т.д.
  3. «Финансы» всегда предоставят необходимые сведения о котировках валют, ситуации на современном рынке, курсах акций и т.д.
  4. В «Ferra.ru» можно найти обзоры новинок цифровой техники: фотоаппаратов, телефонов, компьютеров и т.д.

М едийный портал Rambler.ru пользуется огромной популярностью как в России, так и в других странах СНГ. Благодаря тому, что здесь на одной странице объединены всевозможные разделы и сервисы, пользоваться Рамблером абсолютно несложно и вполне доступно даже людям, не сведущим в мире компьютерных технологий и IT-отрасли. Сегодня мы поговорим о такой несложной процедуре, как настройка почты Rambler , а именно, как создать на сервисе почтовый ящик, как работать с ним, как создавать письма и отвечать на электронные сообщения и т.д.

Портал Рамблер расположен по адресу rambler.ru. Тут можно найти и новости, и последние события в области финансов, недвижимости или путешествий. Помимо этого, на Рамблере доступен просмотр тематических видео в потоковом сервисе, гороскоп, прогноз погоды, онлайн-радио, телепрограмма, каталог веб-ресурсов ТОП-100, где вы можете ознакомиться с лучшими сайтами на любую тематику, и еще масса всякой всячины. Все это доступно прямо на домашней странице портала. Но мы затронем лишь работу с почтой, поскольку каждый из разделов портала требует особого внимания и времени.

Для входа в почтовый сервис зайдите на домашнюю страницу Рамблера и щелкните на кнопке меню «Почта», или перейдите по этой ссылке .

Перед нами появляется форма входа в почтовую службу Rambler. Прямо здесь, введя соответствующие значения имени почтового ящика и пароля, можно войти в почту и начать тут же с ней работать. Если почтового ящика у вас нет, предлагаем вначале зарегистрироваться.

Регистрация на Рамблере

На форме входа в почту нажмите кнопку «Регистрация» внизу. Это запустит процесс создания нового почтового ящика rambler на сервисе.

Получить доступ к любому из сервисов Рамблера можно либо через аккаунт любой социальной сети (VK, Facebook, Одноклассники, Mail.ru, Google, Twitter и пр.), либо через учетную запись самого Рамблера. При входе в сервис через аккаунт соцсети, вы тем самым привязываете логин социалки к сервису Rambler&Co. Процедура входа осуществляется немного быстрее, но возникают сомнения в безопасности данной процедуры. Ведь данные входа в Рамблер при этом будут храниться на сервере соцсети, и если средства аутентификации попадут в сторонние руки, безопасность данных входа в Рамблер также окажется под большим вопросом. Поэтому мы по старинке прибегнем к методике создания обычной учетной записи Rambler&Co, указав логин и пароль для входа на почту. К слову, после прохождения процедуры регистрации, с помощью тех же учетных данных вы легко сможете получить доступ к любому другому сервису Рамблера, что очень удобно, так как избавит вас от необходимости многократной регистрации. Итак, регистрируемся. Для этого нужно ввести в соответствующих полях требуемые данные, а именно: имя, фамилию, логин, предпочтительный домен, пароль, дату рождения, пол и мобильный телефон. Телефон придется ввести корректный, поскольку при регистрации на указанный номер приходит СМС-сообщение с подтверждением регистрации.

Когда будет введен действующий номер телефона, нажмите кнопку «Выслать код» справа и дождитесь СМС-ки с паролем.

В сообщении будет указан номер подтверждения.

Вводим его в поле «Код подтверждения из СМС» и щелкаем кнопку «Зарегистрироваться».

Если все сделано правильно, на экране появляется небольшое текстовое поле зеленого цвета с надписью: «Пользователь зарегистрирован», после чего вы тут же попадете на страничку своего персонального профиля.

Теперь можно заходить на почтовый ящик и работать с электронной корреспонденцией. Кстати, после регистрации на и-мейл должно прийти ваше первое письмо с подтверждением регистрации. Прочесть его вы сможете прямо на сервере. Откроем ящик, кликнув на кнопке «Почта» в верхнем меню, либо выбрав кнопку «Почта» в левой части рабочей области.

Попадаем на сервер «Рамблер Почты». По умолчанию открывается папка «Входящие». Как видим в ней есть одно непрочитанное письмо. Открываем его, выбрав сообщение из списка.

Сообщение открывается буквально мгновенно. Знакомимся с его содержанием. Начальная настройка почты Rambler завершена.

Как написать новое письмо в Rambler почте?

Итак, приступим к работе с самим сервисом. Первый вопрос, который возникает у подавляющего большинства пользователей – как создать новое письмо? Ответ прост – для этого служит кнопка «Написать» в левом верхнем углу главной формы почтового сервиса Rambler. Нажимаем на нее.

Перед нами появляется стандартная форма создания нового электронного сообщения. В поле «Кому» вводим название электронного ящика адресата письма. В поле «Тема» задаем контекст сообщения, т.е. тематику, чему наше письмо посвящено. Наконец, в центральном текстовом блоке вводим тело письма, пишем саму суть нашего сообщения.

Как добавить вложение к письму?

Как всем нам известно, к письму можно добавлять вложения: картинки, видео, музыку и любой другой интерактивный контент. Чтобы сделать вложение нажмите кнопку «Прикрепить файл», расположенную под полем «Тема».

После этого нужно всего лишь указать путь к вкладываемому файлу и нажать кнопку «Открыть», что будет служить подтверждением вашего выбора.

Выполнив все указанные действия по настройке почты Rambler, вложение будет добавлено.

Чтобы удалить вложение, нажмите кнопку «Удалить» справа от названия вложенного файла.

Как оформить письмо в Rambler почте?

Для оформления сообщений в Рамблере служит целая панель, с помощью которой можно поменять шрифт, задать его размер, выделить фрагмент курсивом или жирным начертанием, сделать выравнивание или добавить нумерованный/ненумерованный список или смайл. Стоит сказать, что такие панели присутствуют во всех без исключения почтовых сервисах, но в Рамблере она особенно удобна и практична.

Все действия, выполненные при помощи панели оформления, осуществляются интуитивно и невероятно просто. С ее помощью вы можете придать своему письму изящества и творческой нотки.

Как ответить на письмо?

Если вы получили электронное письмо, возникает логичное желание написать ответ (если только письмо не было прислано одним из роботов, и такому письму ответ не требуется). Ответить на сообщение проще простого. Выполняем скроллинг мышью до самой нижней части сообщения, и находим кнопку «Ответить» под телом письма. Если вы получили письмо от группы респондентов, можете прислать ответ им всем сразу, выбрав вариант «Ответить всем».

Нажимаем на одну из этих кнопок.

Появляется подформа с предложением ввести содержимое вашего ответа. Когда ответное письмо будет написано, жмем графическую кнопку «Отправить» со стрелочкой, расположенную вверху.

Рядом находится кнопка «Отправить всем». Если получатель один, она неактивна. Если вы ранее выбрали опцию «Ответить всем», можете в качестве альтернативы воспользоваться и ей.

Как переслать письмо другому получателю (форварднуть)?

Как поменять пароль на почтовом ящике Rambler?

Иногда возникает необходимость сменить пароль учетной записи на более подходящий. Это может быть ваше собственное решение, если вы стали обеспокоены безопасностью своей рабочей информации, либо вы узнали, что ваш аккаунт взломан, и корреспонденция попала в сторонние руки. Сами разработчики настоятельно рекомендуют делать пароли надежными, включать в них служебные символы, а длина их обязана составлять 12-16 символов, как минимум. Мы присоединяемся к этим рекомендациям. Но предположим, что ящик не взломан, и вы попросту хотите поменять пароль заблаговременно, чтобы предотвратить потенциальный взлом в будущем. Как это сделать?

Входим в нашу учетную запись, как обычно введя название Рамблер-аккаунта и пароль к нему.

Если вход прошел успешно, заходим в настройки своего аккаунта, и выбираем пункт «Пароль».

Справа от него находится кнопка «Сменить», — воспользуемся ей.

Открывается стандартная форма для смены пароля. Здесь нам предлагают ввести действующий пароль, придумать новый и подтвердить его, а также ввести символы с графического ключа (каптчи). Прислушаемся к этому совету. Когда все готово, нажимаем кнопку «Сохранить».

На этом настройка почты Rambler завершена, и вы снова можете работать с почтовым сервисом в штатном режиме.

Как сменить пароль, если вы не можете получить доступ к ящику Рамблер?

Иногда в результате взлома почтового аккаунта зайти на свой почтовый ящик не представляется возможным. Еще такое может произойти, если вы попросту забыли пароль, и не можете его вспомнить. Как тогда быть? Воспользуемся процедурой восстановления пароля.

Заходим на форму входа в почтовый ящик, пишем его название в соответствующем поле, выбираем нужный домен, и нажимаем кнопку «Вспомнить пароль» внизу.

Попадаем на форму восстановления. В качестве первого шага введем точное название почтового ящика и защитный графический ключ. Жмем «Далее».

На следующей форме введем свой действующий номер телефона и новый придуманный пароль. Когда все будет готово, жмем кнопку «Выслать код».

Спустя несколько секунд на ваш телефон должен прийти код подтверждения выбранной вами операции. Вставляем его из СМС-ки в соответствующее поле и жмем кнопку «Сохранить».

Теперь все готово, — пароль был изменен.

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

На основной вкладке можно задать персонализированное имя для отправляемой с Рамблера корреспонденции. Если вы пользуетесь псевдонимом, можете указать его здесь и получатель увидит ваш алиас в поле «От кого». Еще можно указать другой ящик, на который вы хотите получать ответы на исходящие сообщения. Это может быть не только мейл-бокс на Рамблере, но и на Gmail, Яндекс Почте, Outlook’е или любом другом почтовом сервере. О том, как прикрепить к Рамблеру почтовые ящики других служб, читайте чуть ниже.

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

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

В правой части первой вкладки можете поменять цветовую канву клиента на более предпочтительную. На выбор предоставляется около десятка всевозможных раскрасок на любой вкус: от пастельных тонов до цвета лазури и мрамора.

Здесь же можно увидеть, какой объем почтового ящика используется, а сколько места еще остается свободно. Кстати, максимальный объем ящика Рамблер составляет 2 ГБ. До изменения интерфейса клиента в 2012 году размер ящика можно было увеличить вручную, но с проведением ребрендеринга такая опция исчезла, и максимальный объем ящика стал строго соответствовать 2 гигам. Теперь, если объем вашей корреспонденции приближается к максимуму, стоит заранее побеспокоиться о своевременной очистке мейл-бокса, иначе почта попросту перестанет приходить.

На следующей вкладке «Папки» вы можете управлять каталогами, как присутствующими в клиенте по умолчанию, так и новыми, добавленными вручную. Если уже наличествующих в системе папок вам недостаточно, вполне можно добавить еще несколько как раз на этой вкладке.

Очередная вкладка отвечает за добавление к сервису других почтовых ящиков. По сути. вы можете подключить к Рамблеру почтовый ящик любой другой службы. Все, что вам нужно знать, — это адрес IMAP/POP3 сервера для получения корреспонденции, а также номер порта для него (другими словами, шлюза). Получить эти сведения можно на страничке поддержки того сервиса, который вы хотите использовать, придется немного порыться в справочном руководстве.

Следующий раздел настроек – это тюнинг фильтров. Благодаря гибкости и легкости в использовании, можно легко помещать выбранные категории писем в спам, помечать как прочитанные, либо вовсе удалять. Чтобы ящик не оказался переполненным, стоит немного поиграться с настройкой фильтров, и вы избавите себя от головной боли в последующем. Очень удобный интерфейс и сам механизм фильтрации.

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

Следующая опция, расположенная в категории «Почтовые программы», открывает вам доступ к сервису Рамблер для других почтовых приложений (The Bat!, Thunderbird, Outlook и пр.). Здесь указаны все необходимые настройки, которые нужно указать в стороннем почтовом клиенте для доступа к почте на Рамблере. Если вы хотите пользоваться одним из сторонних приложений для доступа к письмам, поставьте галочку «Я хочу получить доступ» вверху.

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

Адресная книга

Пришло время рассказать немного о функции «Контакты». В Рамблере есть адресная книга, куда можно добавлять своих адресатов, чтобы у вас под рукой всегда была база адресов, с которыми вы часто связываетесь. Для доступа к контактам нажмите пиктограммку с человечком справа от кнопки написания нового письма.

Здесь собраны все электронные адреса, с которыми вы вели переписку в Рамблере. Контакты, которые имели место быть, но которые вы не заносили в адресную книгу вручную, попадают в раздел «Автоматические». Остальные адресаты заносятся в категорию «Ваши контакты». Для добавления контакта в список нажмите кнопку «Новый контакт».

Также вы можете импортировать в адресную книгу Рамблера адреса из нескольких почтовых служб: Яндекса, Mail.ru и Qip.ru. Это минимизирует временные затраты на добавление адресов вручную.

Фильтрация спама

В клиент Рамблера вшита функция защиты от спама. Хотя работает она не очень эффективно, все же разработчики периодически подтягивают к базе черных списков новые адреса, что помогает сервису осуществлять фильтрацию. Также, если вы сами хотите пометить одно из писем как спам, вы вполне можете переместить его в соответствующую папку, воспользовавшись верхним меню.

В дополнение, можно пометить письмо как невостребованное и без перемещения, в результате чего адрес отправителя после проверки будет занесен в список спаммеров.

Чтобы отсортировать письма по заданному критерию, необходимо щелкнуть на заголовке колонки и выбрать порядок сортировки: по возрастанию или по убыванию. Механизм сортировки довольно гибкий, и позволяет с легкостью управиться с большим объемом корреспонденции без каких-либо трудностей.

Rambler-почта — мобильная версия

Официальная страница приложения в магазине Google Playссылка .

Официальная страница приложения в магазине App storeссылка .

По сути, мобильная программа полностью повторяет возможности и функции своего ПК-аналога. Здесь доступна и регистрация, и вход через любую из представленных соцсетей, и множество других ярких и нужных фишек. Правда, интерфейс немного скудноват. Можно было бы придать ему больше живости и ярких красок, но это уже на ваш вкус. Возможно, консерватизм и строго деловой подход ценится разработчиками больше, чем стиль и ощущение новизны.

Устанавливаем программу, как любое другое мобильное приложение (она практически так и называется – «Почта rambler.ru»)

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

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

Чтобы перейти в другую папку, нажмите на кнопку с тремя горизонтальными линиями в левом верхнем ряду заголовка.

Навигация по папкам осуществляется легко и абсолютно интуитивно.

Чтобы написать новое письмо в мобильной версии Rambler почты, нажмите на круглую синюю иконку карандаша в правой нижней части дисплея.

Далее все, как обычно: вводим адрес получателя, указываем в поле «Копия» возможного адресата, которого вы хотите добавить в список реципиентов, придумываем тему и составляем сам текст письма. Кстати, в поле «Кому» можно подтянуть адресата из списка контактов вашего телефона, воспользовавшись кнопочкой «плюсика», — весьма удобная и актуальная фича. Далее можем прикрепить вложения или отправить письмо в готовом виде, нажав специально предназначенную для этого кнопку.

Разобраться во всех абилках мобильной версии «Рамблер-почты» не составляет особого труда, — все они видны как на ладони. Интерфейс в программе весьма простой и незатейливый.

Вот и все, что мы хотели вам рассказать о такой занятной теме, как настройка почты Rambler. Чуть позже мы опубликуем подробную инструкцию о том, как работать с Яндекс почтой. Возможности там весьма схожи, но также имеются и свои нюансы.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: