function Car()
{
this.vinCode = "someVinCode";
}
Car.prototype.setVin = function(my_vin)
{
this.vinCode = my;
alert("Vin code:" + this.vinCode);
}
var c1 = new Car();
c1.setVin("vin1");
var c2 = new Car();
c2.setVin("vin2");
JavaScript
Объясните код. Что происходит на каждой строчке. Поэтапно.
Нечего не делает рушит код так как корява написана с ошибками
⚤
⚤
йопта Car()
{
тырыпыры. vinCode с%ка "someVinCode" нах%й
есть
Car.проточелик. setVin с%ка йопта (my_vin)
{
тырыпыры. vinCode с%ка my нах%й
шухер ("Vin code:" + тырыпыры. vinCode) нах%й
есть
гыы c1 с%ка гыйбать Car() нах%й
c1.setVin("vin1") нах%й
гыы c2 с%ка гыйбать Car() нах%й
c2.setVin("vin2") нах%й
{
тырыпыры. vinCode с%ка "someVinCode" нах%й
есть
Car.проточелик. setVin с%ка йопта (my_vin)
{
тырыпыры. vinCode с%ка my нах%й
шухер ("Vin code:" + тырыпыры. vinCode) нах%й
есть
гыы c1 с%ка гыйбать Car() нах%й
c1.setVin("vin1") нах%й
гыы c2 с%ка гыйбать Car() нах%й
c2.setVin("vin2") нах%й
вам что содержимое learn.javascript.ru пересказать в двух словах :) ?
вот лучше оригинал посмотрите
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes
короче:
создана функция Car(), которая в дальнейшем задумана для использования в качестве конструктора нового типа Car.
для типа Car объявлен метод setVin(arg)
Далее создаются объекты этого типа и демонстрируется работа этого метода
вот лучше оригинал посмотрите
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes
короче:
создана функция Car(), которая в дальнейшем задумана для использования в качестве конструктора нового типа Car.
для типа Car объявлен метод setVin(arg)
Далее создаются объекты этого типа и демонстрируется работа этого метода
Ой, я даже не знаю этот язык. Знаю только паскаль. И htp
1. Создаётся функция конструктор Car для последующего создания объектов, в данном конструкторе задаётся свойство vinCode, причём указанное свойство с помощью точечной нотации прикрепляется к ключевому слову this это делается для того, что бы все объекты созданные с помощью конструктора Car имели своё независимое свойство vinCode, при этом изначально данному свойству присваивается строка "someVinCode", т. е. все экземпляры конструкотора изначально имеют данное свойств в котором содержится указанная строка.
Конечный код по свойству выглядит так this.vinCode = "someVinCode";
2. Car.prototype.setVin = function(my_vin)
{
this.vinCode = my;
alert("Vin code:" + this.vinCode);
}
2.1 у функции Car есть объект прототип, хранится в свойстве prototype функции, так как прототип является объектом то у него могут быть методы и свойства которые являются едиными (общими) для всех вновь созданных объектов с помощью конструктора Car
2.2. в прототипе создаётся метод Car.prototype.setVin которому присваивается анонимная функция, принимающая в качестве параметра данные которые присваиваются свойству vinCode объекта экземпляра в отношении которого был вызван данный метод
ВНИМАНИЕ у вас опечатка this.vinCode = my; а должно быть this.vinCode = my_vin; так как это локальная переменная из параметра функции в которой хранятся указанные вами данные
3. ВЕСЬ СМЫСЛ КОДА в п. 2.2 который показывает, взаимосвязь прототипа и ключевого слова this, т. е. метод находящейся в прототипе применяется для всех объектов экземпляров конструктора Car, однако так как в данном методе используется this то следовательно изменения будут применяться только к тому экземпляру объекта который вызвал данный метод
3.1. это подверждает этот код
var c1 = new Car();
вызовите в консоле с1.vinCode и отобразится "someVinCode"
c1.setVin("vin1"); => вызовите в консоле с1.vinCode и отобразится "vin1"
var c2 = new Car();
вызовите в консоле с2.vinCode и отобразится "someVinCode"
c2.setVin("vin2"); => вызовите в консоле с2.vinCode и отобразится "vin2"
т. е. вы увидите что сначала было общее значение которое презаписалось для каждого экземпляра независимо с помощью общего метода находящегося в прототипе.
Конечный код по свойству выглядит так this.vinCode = "someVinCode";
2. Car.prototype.setVin = function(my_vin)
{
this.vinCode = my;
alert("Vin code:" + this.vinCode);
}
2.1 у функции Car есть объект прототип, хранится в свойстве prototype функции, так как прототип является объектом то у него могут быть методы и свойства которые являются едиными (общими) для всех вновь созданных объектов с помощью конструктора Car
2.2. в прототипе создаётся метод Car.prototype.setVin которому присваивается анонимная функция, принимающая в качестве параметра данные которые присваиваются свойству vinCode объекта экземпляра в отношении которого был вызван данный метод
ВНИМАНИЕ у вас опечатка this.vinCode = my; а должно быть this.vinCode = my_vin; так как это локальная переменная из параметра функции в которой хранятся указанные вами данные
3. ВЕСЬ СМЫСЛ КОДА в п. 2.2 который показывает, взаимосвязь прототипа и ключевого слова this, т. е. метод находящейся в прототипе применяется для всех объектов экземпляров конструктора Car, однако так как в данном методе используется this то следовательно изменения будут применяться только к тому экземпляру объекта который вызвал данный метод
3.1. это подверждает этот код
var c1 = new Car();
вызовите в консоле с1.vinCode и отобразится "someVinCode"
c1.setVin("vin1"); => вызовите в консоле с1.vinCode и отобразится "vin1"
var c2 = new Car();
вызовите в консоле с2.vinCode и отобразится "someVinCode"
c2.setVin("vin2"); => вызовите в консоле с2.vinCode и отобразится "vin2"
т. е. вы увидите что сначала было общее значение которое презаписалось для каждого экземпляра независимо с помощью общего метода находящегося в прототипе.
Nik Novik
спасибо
Похожие вопросы
- C# Шифр Цезаря Разложите все по полочкам, что каждая строчка делает? начиная c Empty Я полный чайник. Спасибо огромное
- Вопрос только к тем, кто знает js: Кому не лень, объясните мне нубу значение каждого элемента небольшого кода (10 строк).
- Почему большинство прогеров не ставят точку с запятой в конце строчек кода при разработке приложений на js?
- Объясните кусок кода змейки на js
- Если в конце строчки кода не ставить ; в javascript то какие побочные эфекты появятся ?
- Кто сможет объяснить мне как работает этот код
- Объясните формулы по этому коду. Почему именно так?
- JavaScript как в данном коде передавать значения не в alert а чтобы отображалось в input после каждого нажатия кнопки
- Помогите разобраться в логике кода (замыкания)
- Вопрос по стилю кода. Следует ли проверять наличие свойства в объекте если я точно знаю что оно должно там быть?