Создания пользовательского объекта javascript

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

Это, наверное, самый легкий способ создания объекта. Вы просто создаете имя объекта и приравниваете его к новому объекту Javascript.

//Создаем наш объект var MyObject = new Object(); //Переменные MyObject.id = 5; //Число MyObject.name = «Sample»; //Строка //Функции MyObject.getName = function()

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

//Используем наш объект alert(MyObject.getName());

Литеральная нотация

Литеральная нотация является несколько непривычным способом определения новых объектов, но достаточно легким для понимания. Литеральная нотация работает с версии Javascript 1.3.

//Создаем наш объект с использованием литеральной нотации MyObject = < id : 1, name : "Sample", boolval : true, getName : function() < return this.name; >>

Как видите, это довольно просто.

Конструкторы объектов

Конструкторы объектов — это мощное средство для создания объектов, которые можно использовать неоднократно. Конструктор объекта — это, по сути, обычная функция Javascript, которой так же можно передавать различные параметры.

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

var MyFirstObjectInstance = new MyObject(5,"Sample"); var MySecondObjectInstace = new MyObject(12,"Othe Sample");

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

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

Аналогичным образом мы можем создавать и функции.

function MyObject(id,name) < this._id = id; this._name = name; this.defaultvalue = "MyDefaultValue"; //Получение текущего значения this.getDefaultValue = function() < return this.defaultvalue; >//Установка нового значения this.setDefaultValue = function(newvalue) < this.defaultvalue = newvalue; >//Произвольная функция this.sum = function(a, b) < return (a+b); >>

Ассоциативные массивы

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

var MyObject = new Number(); MyObject["id"] = 5; MyObject["name"] = "SampleName";

Для обхода таких объектов можно использовать такой цикл:

for (MyElement in MyObject) < //Код обхода //В MyElement - идентификатор записи //В MyObject[MyElement] - содержание записи >

По материалу подготовлена небольшая схема.

Вы можете её посмотреть в форматах: PNG SVG

Огромное спасибо gro за помощь.

Источник

JavaScript Урок 33 Пользовательские Объекты

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

Примеры

Объекты JavaScript

В предыдущих уроках JavaScript вы видели, что имеется несколько встроенных объектов, например String, Date, Array, и другие. В дополнение к этим встроенным объектам, вы также можете создавать свои собственные.

Объект это специальный вид данных с набором свойств и методов.

Давайте проиллюстрируем это на примере: Персона (person) — это объект. Свойства — это значения, ассоциированные с объектом. Свойства персоны включают имя, рост, вес, возраст, цвет кожи, цвет глаз, и т.д. Все персоны имеют эти свойства, но значения этих свойств будут различаться от одной персоны к другой. Объекты также имеют методы. Методы — это действия, которые могут быть выполнены над объектами. Методы персоны могут включать eat() — есть, sleep() — спать, work() — работать, play() — играть, и т.д.

Свойства

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

Вы можете добавлять свойство к объекту, просто придавая ему значение. Предположим, что объект personObj уже существует — вы можете задать для него свойства firstname (имя), lastname (фамилия), age (возраст), и eyecolor (цвет глаз) следующим образом:

Код выше сгенерирует следующий вывод:

Методы

Объект также может включать методы.

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

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

Пример вызова метода sleep() объекта personObj:

Создание Ваших Собственных Объектов

Есть три различных способа создания объекта:

1. Создание прямого экземпляра объекта

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

personObj=new Object();
personObj.firstname=»Вася»;
personObj.lastname=»Иванов»;
personObj.age=30;
personObj.eyecolor=»карие»;

альтернативный синтаксис (использование объектных литералов):

Добавить метод к объекту personObj также просто. Следующий код добавляет метод с названием eat() к объекту personObj:

2. Создание конструктора объекта

Создаем функцию, которая инициализирует объекты:

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

Внутри функции вы должны присвоить значения свойствам используя конструкцию this.ИмяСвойства. Причина такого синтаксиса в том, что вы собираетесь использовать более одного экземпляра объекта (персоны) одновременно (и должно быть понятно, с каким конкретно объектом вы имеете дело). Поэтому слово «this» указывает на конкретный — текущий объект, свойства которого вы инициализируете в конструкторе.

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

var myFather=new person(«Вася»,»Иванов»,30,»карие»);
var myMother=new person(«Света»,»Захарова»,28,»зеденые»);

Вы также можете добавить несколько методов к объекту person. Это делается внутри функции:

Заметьте, что методы — это обычные функции, прикрепленные к объектам. Далее мы должны написать тело функции newlastname():

function newlastname(new_lastname)
this.lastname=new_lastname;
>

Функция newlastname() получает в качестве параметра новую фамилию персоны и присваивает ее этой персоне. JavaScript знает, о какой персоне идет речь, посредством использования слова «this.». Таким образом, теперь вы можете написать: myMother.newlastname(«Иванова»).

Источник

Оператор new

Оператор (операторная функция) new создаёт экземпляр объекта, встроенного или определённого пользователем, имеющего конструктор.

Синтаксис

Параметры

Функция, задающая тип объекта.

Список параметров, с которыми будет вызван конструктор.

Описание

Создание объекта, определённого пользователем, требует два шага:

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

Когда исполняется new Foo(. ) , происходит следующее:

  1. Создаётся новый объект, наследующий Foo.prototype.
  2. Вызывается конструктор — функция Foo с указанными аргументами и this , привязанным к только что созданному объекту. new Foo эквивалентно new Foo() , то есть если аргументы не указаны, Foo вызывается без аргументов.
  3. Результатом выражения new становится объект, возвращённый конструктором. Если конструктор не возвращает объект явно, используется объект из п. 1. (Обычно конструкторы не возвращают значение, но они могут делать это, если нужно переопределить обычный процесс создания объектов.)

Всегда можно добавить свойство к уже созданному объекту. Например, car1.color = «black» добавляет свойство color к объекту car1 , и присваивает ему значение » black «. Это не затрагивает другие объекты. Чтобы добавить свойство ко всем объектам типа, нужно добавлять его в определение типа Car.

Добавить свойство к ранее определённому типу можно используя свойство Function.prototype (en-US) . Это определит свойство для всех объектов, созданных этой функцией, а не только у какого-либо экземпляра. Следующий пример добавляет свойство color со значением null всем объектам типа car , а потом меняет его на » black » только у экземпляра car1 . Больше информации в статье prototype (en-US) .

function Car() > car1 = new Car(); console.log(car1.color); // undefined Car.prototype.color = null; console.log(car1.color); // null car1.color = "black"; console.log(car1.color); // black 

Примеры

Тип объекта и экземпляры объекта

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

function Car(make, model, year)  this.make = make; this.model = model; this.year = year; > 

Теперь можно создать экземпляр типа car:

var mycar = new Car("Eagle", "Talon TSi", 1993); 

Это выражение создаёт экземпляр mycar и присваивает его свойствам указанные значения. Таким образом, mycar.make принимает значение «Eagle», mycar.year принимает значение 1993, и так далее.

Можно создать любое количество экземпляров car с помощью оператора new . Например:

var kenscar = new Car("Nissan", "300ZX", 1992); 

Объект в качестве свойства

Предположим, есть объект person :

function Person(name, age, sex)  this.name = name; this.age = age; this.sex = sex; > 
var rand = new Person("Rand McNally", 33, "M"); var ken = new Person("Ken Jones", 39, "M"); 

Изменим определение car , добавив свойство, указывающее владельца — owner :

function Car(make, model, year, owner)  this.make = make; this.model = model; this.year = year; this.owner = owner; > 
var car1 = new Car("Eagle", "Talon TSi", 1993, rand); var car2 = new Car("Nissan", "300ZX", 1992, ken); 

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

Спецификации

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

Found a content problem with this page?

This page was last modified on 17 июл. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

Our communities

Developers

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Источник

Читайте также:  Set array index python
Оцените статью