В этой статье описываются методы реализации классов и экземпляров в JavaScript. Поделитесь этим для вашей ссылки. Детали следующие:
В JavaScript нет концепции родительского класса, детского класса или класса или экземпляра. Все зависит от цепочки прототипа для достижения наследования. При поиске свойств объекта JavaScript будет пересекать цепочку прототипа вверх, пока не найдены соответствующие свойства. Есть несколько методов, которые могут сделать JavaScript имитировать концепции класса и экземпляра.
1. Используйте конструктор непосредственно для создания объекта, и используйте его для обозначения экземпляра объекта внутри конструктора.
Скопируйте код следующим образом: Function Animal () {
this.name = "животное";
}
Animal.prototype.mokesound = function () {
console.log ("Animal Sound");
}
[Функция]
var Animal1 = New Animal ();
Animal1.name;
'животное'
Animal1.makesound ();
Звук животных
Давайте посмотрим на другой пример:
Скопируйте код следующим образом: точка функции (x, y) {
this.x = x;
this.y = y;
}
Point.prototype = {
Method1: function () {console.log ("method1"); },
Метод2: function () {console.log ("method2"); },
}
{method1: [function], method2: [function]}
var point1 = новая точка (10, 20);
point1.method1 ();
Метод1
point1.method2 ();
Метод2
Как указано выше, сначала укажите атрибут прототипа объекта конструктора. Затем, новый экземпляр объекта, вы можете вызвать метод, указанный в прототипе.
2. Используйте метод object.create () для создания объекта
Скопируйте код следующим образом: var Animal = {
Название: "животное",
MAKESOUND: function () {console.log ("Animal Sound"); },
}
var Animal2 = Object.Create (Animal);
Animal2.name;
'животное'
console.log (Animal2.name);
животное
Animal2.makesOund ();
Звук животных
Этот метод проще, чем метод конструктора, но он не может реализовать частные атрибуты и частные методы, и данные не могут быть переданы между объектами экземпляра, поэтому моделирование класса все еще недостаточно всеобъемлющее.
3. Минималистский подход, предложенный голландским программистом Габором де Муйдж. Рекомендуемое использование.
Скопируйте код следующим образом: var Animal = {
init: function () {
var Animal = {};
Animal.name = "Animal";
Animal.MakesOund = function () {console.log ("Animal Sound"); };
возвращение животного;
}
};
var Animal3 = Animal.Init ();
Animal3.name;
'животное'
Animal3.makesOund ();
Звук животных
Без использования прототипа и этого вам нужно только настроить конструктор. Унаследованная реализация также очень проста.
Скопируйте код следующим образом: var cat = {
init: function () {
var cat = Animal.Init ();
cat.name2 = "cat";
cat.mokesound = function () {console.log ("cat sound"); };
cat.sleep = function () {console.log ("кошка сна"); };
вернуть кошку;
}
}
var cat = cat.init ();
Cat.name; // 'животное'
Cat.name2; // 'кот'
cat.mokesound (); // аналогично перегрузке метода
кошка звук
cat.sleep ();
кошка сна
Использование частных свойств и частных методов:
Скопируйте код следующим образом: var Animal = {
init: function () {
var Animal = {};
var sound = "Crivate Animal Sound"; // частные атрибуты
Animal.MakesOund = function () {console.log (sound); };
возвращение животного;
}
};
var Animal4 = Animal.Init ();
Animal.Sound; // Неопределенные частные атрибуты могут быть прочитаны только через собственные методы объекта.
Animal.Sound; // Неопределенные частные атрибуты могут быть прочитаны только с помощью собственного метода объекта.
Animal4.makesOund ();
Частное животное звучание
Пока свойства и методы, не определенные на объектах животных, являются частными, к ним не может быть доступ к внешнему миру.
Обмен данными может быть достигнут между классами и экземплярами.
Скопируйте код следующим образом: var Animal = {
Звук: «Общий звук животных»,
init: function () {
var Animal = {};
Animal.commonsound = function () {console.log (Animal.Sound); };
Animal.ChangesOund = function () {Animal.Sound = "Common Animal Sound изменился"; };
возвращение животного;
}
}
var Animal5 = Animal.Init ();
var Animal6 = Animal.Init ();
Animal.Sound; // можно рассматривать как атрибут класса
'Common Animal Sound'
животное. // объект экземпляра не может получить доступ к атрибутам класса
неопределенный
Animal6.Sound;
неопределенный
Animal5.commonsound ();
Общий звук животных
Animal6.commonsound ();
Общий звук животных
Animal5.ChangesOund (); // Изменить свойства класса
неопределенный
Animal.Sound;
'Common Animal Sound'
Animal5.commonsound ();
Общий звук животных
Animal6.commonsound ();
Общий звук животных
Например, Animal.Sound - это общие атрибуты классов и экземпляров, которые можно рассматривать как атрибуты класса и методы класса.
Если экземпляр изменяет общий атрибут, общие атрибуты класса и другие экземпляры также изменяются соответственно.
Таким образом, это концепция и использование класса и экземпляра, моделируемого в JavaScript.
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.