Цепочка функций — это метод программирования, который позволяет разработчикам создавать последовательность операций, которые выполняются в определенном порядке. В JavaScript это достигается за счет комбинации возврата самой функции и использования ключевого слова this.
Чтобы понять принципы цепочки, давайте рассмотрим рабочий пример:
var one = function(num) {
this.oldnum = num;
this.add = function() {
this.oldnum ;
return this;
}
if (this instanceof one) {
return this.one;
} else {
return new one(num);
}
}
var test = one(1).add().add();
В этом примере одна функция создается с числом. Он определяет функцию добавления, которая увеличивает свойство oldnum и возвращает его. Оператор if проверяет, вызвана ли функция как конструктор (с использованием new), и в противном случае возвращает новый экземпляр.
Выражение one(1).add().add() начинается с создания новый объект с начальным значением 1. Затем для этого объекта дважды вызывается функция add, которая каждый раз увеличивает свойство oldnum. Наконец, проверка переменной содержит результат, который представляет собой один объект, для которого oldnum установлено значение 3.
Напротив, следующий пример не объединяется правильно:
var gmap = function() {
this.add = function() {
alert('add');
return this;
}
if (this instanceof gmap) {
return this.gmap;
} else {
return new gmap();
}
}
var test = gmap.add();
Здесь функция gmap не возвращает это в своих методах, поэтому цепочка нарушается. Выражение gmap.add() пытается вызвать метод add в самой функции конструктора gmap, что не работает должным образом.
Ключом к успешному связыванию является использование ключевого слова this, которое относится к текущий объект. Возвращая это из методов, вызывающая сторона может снова получить доступ к объекту и продолжить последовательность операций.
Цепочка может быть мощным методом написания лаконичного и выразительного кода на JavaScript. Понимая принципы, изложенные выше, разработчики могут эффективно использовать цепочку для улучшения функциональности своих приложений.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3