Последние учебники веб-разработки
×

JS Руководство

JS ГЛАВНАЯ JS Введение JS Куда JS Вывод JS Синтаксис JS Заявления JS Комментарии JS переменные JS операторы JS арифметика JS присваивание JS Типы данных JS функции JS Объекты JS Объем JS Мероприятия JS Строки JS Методы струнных JS чисел JS Методы Number JS математический JS Даты JS Форматы даты JS Методы Дата JS Массивы JS Методы массивов JS Booleans JS Сравнения JS условия JS переключатель JS петля For JS В то время как Loop JS Ломать JS Тип преобразования JS RegExp JS ошибки JS отладка JS Подъемно JS Строгий режим JS Гид по стилю JS Лучшие практики JS Ошибки JS Представление JS Зарезервированные слова JS JSON

JS формы

Формы проверки Формы API

JS объект

Определения объектов Свойства объекта Методы объекта Прототипы объектов

JS функции

Определения функций Функциональные параметры Функция Призвание Функция Затворы

JS HTML DOM

DOM вступление DOM методы DOM Документ DOM элементы DOM HTML DOM CSS DOM Анимации DOM Мероприятия DOM EventListener DOM навигация DOM Вершины DOM Nodelist

JS браузер BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Примеры

JS Примеры JS HTML DOM JS HTML вход JS HTML Объекты JS HTML Мероприятия JS браузер JS викторина JS Резюме

JS Рекомендации

JavaScript Объекты HTML DOM Объекты


 

JavaScript Объекты


Объекты JavaScript

В JavaScript объекты король. Если вы понимаете, объекты, вы понимаете JavaScript.

В JavaScript, почти "все" является объектом.

  • Booleans могут быть объектами (или примитивные данные рассматриваются как объекты)
  • Numbers могут быть объектами (или примитивные данные рассматриваются как объекты)
  • Strings могут быть объектами (или примитивные данные рассматриваются как объекты)
  • Dates всегда объекты
  • Maths всегда объекты
  • Regular выражения всегда объекты
  • Arrays всегда объекты
  • Functions всегда объекты
  • Objects являются объектами

В JavaScript, все значения, за исключением примитивных значений, являются объектами.

Примитивные значения: строки ("John Doe") , числа (3.14), true, false, null , и undefined .


Объекты Переменные Переменные, содержащие

Переменные JavaScript может содержать отдельные значения:

пример

var person = "John Doe";
Попробуй сам "

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

Значения записываются в виде имя: пары значений (имя и значение , разделенные двоеточием).

пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Попробуй сам "

Объект JavaScript представляет собой набор именованных значений


Свойства объекта

Названные значения, в объектах JavaScript, называются свойствами.

Имущество Стоимость
firstName John
lastName Doe
age 50
eyeColor blue

Объекты, написанные в виде пар имя-значение подобны:

  • Ассоциативные массивы в PHP
  • Словари в Python
  • Хэш-таблицы в C
  • Хэш-карты в Java
  • Хэши в Ruby , и Perl

Методы объекта

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

Свойства объекта могут быть как примитивные значения, другие объекты и функции.

Метод объекта является свойство объекта , содержащий определение функции.

Имущество Стоимость
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

Объекты JavaScript являются контейнерами для названных значений, называемых свойств и методов.

Вы узнаете больше о методах в следующих главах.


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

С помощью JavaScript, вы можете определять и создавать свои собственные объекты.

Существуют различные способы создания новых объектов:

  • Определить и создать один объект, используя литерал объекта.
  • Определить и создать один объект, с ключевым словом New.
  • Определить конструктор объекта, а затем создавать объекты построенного типа.

В ECMAScript 5, объект также может быть создан с помощью функции Object.create() .


Использование литерала объекта

Это самый простой способ создать объект JavaScript.

Использование литерал объекта, вам как определить и создать объект в одном операторе.

Литерал объекта представляет собой список имя: пар значений (например , age:50 ) в фигурные скобки {} .

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

пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Попробуй сам "

Пробелы и разрывы строк не важны. Определение объекта может занимать несколько строк:

пример

var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};
Попробуй сам "

Использование нового JavaScript ключевых слов

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

пример

var person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Попробуй сам "

Эти два примера выше, сделать то же самое. Там нет необходимости использовать new Object() .
Для простоты, читабельности и скорости выполнения, используйте первый (объект буквальным метод).


Использование конструктора объекта

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

Иногда нам нравится иметь "тип объекта", который может быть использован для создания множества объектов одного типа.

Стандартный способ создать "тип объекта" является использование функции конструктора объекта:

пример

function person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Попробуй сам "

Выше функция (человек) является конструктор объекта.

После того, как у вас есть конструктор объекта, вы можете создавать новые объекты одного и того же типа:

var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");

this ключевое слово

В JavaScript вещь называется this , является объектом , который "владеет" код JavaScript.

Значение в this , при использовании в функции, является объектом , который "владеет" функцию.

Значение в this , когда используется в объекте, является сам объект.

this ключевое слово в конструктор объекта не имеет значения. Это всего лишь заменой для нового объекта.

Значение this станет новым объектом , когда конструктор используется для создания объекта.

Обратите внимание , что это не является переменной. Это ключевое слово. Вы не можете изменить значение this .


Встроенный JavaScript Конструкторы

JavaScript имеет встроенные конструкторы для встроенных объектов:

пример

var x1 = new Object();    // A new Object object
var x2 = new String();    // A new String object
var x3 = new Number();    // A new Number object
var x4 = new Boolean()    // A new Boolean object
var x5 = new Array();     // A new Array object
var x6 = new RegExp();    // A new RegExp object
var x7 = new Function();  // A new Function object
var x8 = new Date();      // A new Date object
Попробуй сам "

Math() объект не находится в списке. Математика является глобальный объект. Новое ключевое слово не может быть использовано по математике.

Вы знали?

Как вы можете видеть, JavaScript имеет версии примитивных типов данных String, Number и Boolean объект.

Там нет никаких оснований для создания сложных объектов. Примитивные значения выполняться намного быстрее.

И нет никаких причин , чтобы использовать новый Array() . Использование литералов массива вместо: []

И нет никаких причин , чтобы использовать новый RegExp() . Использование шаблонов литералы вместо этого: /()/

И нет никаких причин , чтобы использовать новые Function() . Используйте функцию выражения вместо: function () {} .

И нет никаких причин , чтобы использовать new Object() . Используйте вместо литералов объектов: {}

пример

var x1 = {};            // new object
var x2 = "";            // new primitive string
var x3 = 0;             // new primitive number
var x4 = false;         // new primitive boolean
var x5 = [];            // new array object
var x6 = /()/           // new regexp object
var x7 = function(){};  // new function object
Попробуй сам "

JavaScript Объекты Mutable

Объекты изменчивы: они рассматриваются в качестве ссылки, а не по значению.

Если у представляет собой объект, следующий оператор не будет создавать копию у:

var x = y;  // This will not create a copy of y.

Объект х не является копией у. Это у. Оба х и у указывает на тот же объект.

Любые изменения у также изменится х, потому что х и у того же объекта.

пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 10;           // This will change both x.age and person.age
Попробуй сам "