JavaScript Объект


В JavaScript всё является объектом: строки, числа, массивы, функции...

Кроме того, JavaScript позволяет создавать пользовательские объекты.


Всё является объектом

JavaScript предоставляет множество встроенных объектов, таких как String, Date, Array, и т. д. Объекты — это особые типы данных, которые имеют свойства и методы.

  • Логическое значение может быть объектом.
  • Число может быть объектом.
  • Строка также может быть объектом
  • Дата является объектом
  • Math и регулярные выражения также являются объектами
  • Массив является объектом
  • Даже функции могут быть объектами

Объекты JavaScript

Объект — это просто особый тип данных. Объекты имеютсвойстваиметоды。


Доступ к свойствам объекта

Свойства — это значения, связанные с объектом.

Синтаксис доступа к свойству объекта:

objectName.propertyName

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

var message="Hello World!";
var x=message.length;

После выполнения приведённого выше кода значение x будет:

12


Доступ к методам объекта

Методы — это действия, которые можно выполнять над объектами.

Вызвать метод можно с помощью следующего синтаксиса:

objectName.methodName()

В этом примере используется метод toUpperCase() объекта String для преобразования текста в верхний регистр:

var message="Hello world!";
var x=message.toUpperCase();

После выполнения приведённого выше кода значение x будет:

HELLO WORLD!


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

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

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

  • Используйте Object для определения и создания экземпляра объекта.
  • Используйте функцию для определения объекта, затем создавайте новые экземпляры объектов.

Использование Object

В JavaScript почти все объекты являются экземплярами типа Object; все они наследуют свойства и методы из Object.prototype.

Конструктор Object создаёт объект-обёртку.

Конструктор Object создаёт объект на основе переданного аргумента, а именно следующим образом:

  • Если переданное значение равно null или undefined, будет создан и возвращён пустой объект.
  • Если передано примитивное значение, будет создан объект его типа-обёртки.
  • Если передано значение ссылочного типа, это значение всё равно будет возвращено; переменные, скопированные из него, сохраняют тот же ссылочный адрес, что и исходный объект.
  • При вызове не в форме конструктора Object ведёт себя так же, как new Object().

Формат синтаксиса:

// 以构造函数形式来调用
new Object([value])

value может быть любым значением.

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

// 等价于 o = new Boolean(true);
var o = new Object(true);

Этот пример создаёт новый экземпляр объекта и добавляет в него четыре свойства:

Пример

person=new Object(); person.firstname="John"; person.lastname="Doe"; person.age=50; person.eyecolor="blue";

Попробуйте сами »

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

var myObject = {
    key1: value1,
    key2: value2,
    // 更多键值对...
};
  • myObject:Имя переменной, используемое для ссылки на весь объект.
  • key1, key2:Имя свойства, может быть строкой или идентификатором.
  • value1, value2:Значение свойства может быть любым типом данных JavaScript, включая числа, строки, логические значения, функции, массивы или даже другие объекты.

Пример

var person = {
    firstName: 'John',
    lastName: 'Doe',
    age: 30,
    isStudent: false,
    greet: функция() {
        console.log('Привет, я ' + this.firstName + ' ' + this.lastName);
    }
};

console.log(person.firstName);  // Вывод: John
person.greet();  // Вывод: Привет, я John Doe

Пример

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};

Попробуйте сами »

Объект JavaScript — этоname:valueколлекция.



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

В этом примере используется функция для создания объекта:

Пример

function person(firstname,lastname,age,eyecolor) { this.firstname=firstname; this.lastname=lastname; this.age=age; this.eyecolor=eyecolor; }

Попробуйте сами »

В JavaScript this обычно относится к самой функции, которую мы выполняем, или к объекту, которому принадлежит функция (во время выполнения).


Создание экземпляров объектов JavaScript

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

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


Добавление свойств к объектам JavaScript

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

Предполагая, что объект person уже существует — вы можете добавить к нему эти новые свойства: firstname, lastname, age и eyecolor:

person.firstname="John";
person.lastname="Doe";
person.age=30;
person.eyecolor="blue";

x=person.firstname;

После выполнения приведённого выше кода значение x будет:

John


Добавление методов к объектам JavaScript

Методы — это просто функции, прикреплённые к объектам.

Определите метод объекта внутри функции-конструктора:

function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;

    this.changeName=changeName;
    function changeName(name)
    {
        this.lastname=name;
    }
}

Функция changeName() присваивает значение name свойству lastname объекта person.

Теперь вы можете попробовать:

myMother.changeName("Doe");

Попробуйте сами »

Классы JavaScript

JavaScript — объектно-ориентированный язык, но JavaScript не использует классы.

В JavaScript вы не создаёте классы и не создаёте объекты через классы (как в других объектно-ориентированных языках).

JavaScript основан на прототипах, а не на классах.


Цикл for...in в JavaScript

Оператор JavaScript for...in перебирает свойства объекта.

Синтаксис

for (variable in object)
{
    执行的代码……
}

Примечание:Блок кода внутри цикла for...in будет выполняться один раз для каждого свойства.

Пример

Перебор свойств объекта:

Пример

var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=txt + person[x]; }

Попробуйте сами »


Объекты JavaScript изменяемы

Объекты изменяемы; они передаются по ссылке.

Объект person в следующем примере не создаёт копию:

var x = person;  // 不会创建 person 的副本,是引用

Если вы измените x, свойства person также изменятся:

Пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"} var x = person; x.age = 10; //И x.age, и person.age изменятся

Попробуйте сами »
Другие расширения