Объекты JavaScript
В JavaScript объекты король. Если вы понимаете, объекты, вы понимаете JavaScript.
В JavaScript, почти "все" является объектом.
- Booleans могут быть объектами (или примитивные данные рассматриваются как объекты)
- Numbers могут быть объектами (или примитивные данные рассматриваются как объекты)
- Strings могут быть объектами (или примитивные данные рассматриваются как объекты)
- Dates всегда объекты
- Maths всегда объекты
- Regular выражения всегда объекты
- Arrays всегда объекты
- Functions всегда объекты
- Objects являются объектами
В JavaScript, все значения, за исключением примитивных значений, являются объектами.
Примитивные значения: строки ("John Doe") , числа (3.14), true, false, null , и undefined .
Объекты Переменные Переменные, содержащие
Переменные JavaScript может содержать отдельные значения:
Объекты являются переменными тоже. Но объекты могут содержать множество значений.
Значения записываются в виде имя: пары значений (имя и значение , разделенные двоеточием).
Объект 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 с четырьмя свойствами:
Пробелы и разрывы строк не важны. Определение объекта может занимать несколько строк:
Использование нового 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
Попробуй сам "