Baseline Widely available
ÐпеÑаÑÐ¾Ñ (опеÑаÑоÑÐ½Ð°Ñ ÑÑнкÑиÑ) new
ÑоздаÑÑ ÑкземплÑÑ Ð¾Ð±ÑекÑа, вÑÑÑоенного или опÑеделÑнного полÑзоваÑелем, имеÑÑего конÑÑÑÑкÑоÑ.
new constructor[([arguments])]ÐаÑамеÑÑÑ
constructor
ФÑнкÑиÑ, задаÑÑÐ°Ñ Ñип обÑекÑа.
arguments
СпиÑок паÑамеÑÑов, Ñ ÐºÐ¾ÑоÑÑми бÑÐ´ÐµÑ Ð²Ñзван конÑÑÑÑкÑоÑ.
Создание обÑекÑа, опÑеделÑнного полÑзоваÑелем, ÑÑебÑÐµÑ Ð´Ð²Ð° Ñага:
new
.ЧÑÐ¾Ð±Ñ Ð¾Ð¿ÑеделиÑÑ Ð½Ð¾Ð²Ñй Ñип обÑекÑа, ÑоздайÑе ÑÑнкÑиÑ, коÑоÑÐ°Ñ Ð·Ð°Ð´Ð°ÑÑ ÐµÐ³Ð¾ и Ð¸Ð¼Ñ Ð¸ ÑвойÑÑва. СвойÑÑво обÑекÑа Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð±ÑекÑом. ÐÑимеÑÑ Ð¿ÑÐ¸Ð²ÐµÐ´ÐµÐ½Ñ Ð½Ð¸Ð¶Ðµ.
Ðогда иÑполнÑеÑÑÑ new Foo(...)
, пÑоиÑÑ
Ð¾Ð´Ð¸Ñ ÑледÑÑÑее:
Foo.prototype.
Foo
Ñ ÑказаннÑми аÑгÑменÑами и this
, пÑивÑзаннÑм к ÑолÑко ÑÑо ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð¾Ð±ÑекÑÑ. new Foo
ÑквиваленÑно new Foo()
, Ñо еÑÑÑ ÐµÑли аÑгÑменÑÑ Ð½Ðµ ÑказанÑ, Foo
вÑзÑваеÑÑÑ Ð±ÐµÐ· аÑгÑменÑов.ÐÑегда можно добавиÑÑ ÑвойÑÑво к Ñже ÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ Ð¾Ð±ÑекÑÑ. ÐапÑимеÑ, car1.color = "black"
добавлÑÐµÑ ÑвойÑÑво color
к обÑекÑÑ car1
, и пÑиÑÐ²Ð°Ð¸Ð²Ð°ÐµÑ ÐµÐ¼Ñ Ð·Ð½Ð°Ñение "black
". ÐÑо не заÑÑÐ°Ð³Ð¸Ð²Ð°ÐµÑ Ð´ÑÑгие обÑекÑÑ. ЧÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÑвойÑÑво ко вÑем обÑекÑам Ñипа, нÑжно добавлÑÑÑ ÐµÐ³Ð¾ в опÑеделение Ñипа Car.
ÐобавиÑÑ ÑвойÑÑво к Ñанее опÑеделÑÐ½Ð½Ð¾Ð¼Ñ ÑÐ¸Ð¿Ñ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзÑÑ ÑвойÑÑво Function.prototype
. ÐÑо опÑÐµÐ´ÐµÐ»Ð¸Ñ ÑвойÑÑво Ð´Ð»Ñ Ð²ÑеÑ
обÑекÑов, ÑозданнÑÑ
ÑÑой ÑÑнкÑией, а не ÑолÑко Ñ ÐºÐ°ÐºÐ¾Ð³Ð¾-либо ÑкземплÑÑа. СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÐµÑ ÑвойÑÑво color Ñо знаÑением null
вÑем обÑекÑам Ñипа car
, а поÑом менÑÐµÑ ÐµÐ³Ð¾ на "black
" ÑолÑко Ñ ÑкземплÑÑа car1
. ÐолÑÑе инÑоÑмаÑии в ÑÑаÑÑе prototype.
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;
}
Создадим ÑкземплÑÑÑ car:
var car1 = new Car("Eagle", "Talon TSi", 1993, rand);
var car2 = new Car("Nissan", "300ZX", 1992, ken);
ÐмеÑÑо ÑÑÑоковÑÑ
или ÑиÑленнÑÑ
знаÑений можно пеÑедаÑÑ Ð¾Ð±ÑÐµÐºÑ ÐºÐ°Ðº паÑамеÑÑ. ЧÑÐ¾Ð±Ñ ÑзнаÑÑ Ð¸Ð¼Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа car2
, полÑÑим доÑÑÑп к ÑвойÑÑвÑ:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4