Injection Dependency - это тип реализации принципа «инверсии управления», на котором основано построение Framework.
. Рамки, как указано в «Шаблон проектирования» GoF, являются классами, реализующими основной поток управления логика, побуждающая разработчика к этому, таким образом, Frameworks реализуют инверсию принципа управления.
. Способ реализовать как метод, а не как иерархию классов, этот принцип IoC - это просто инъекция зависимостей.
DI состоит в основном для делегирования отображения экземпляров классов и ссылки типа на эти экземпляры на внешний «объект»: объект, статический класс, компонент, структуру и т. д. ...
Экземпляры классов - это « зависимостей », внешняя привязка вызывающего компонента с экземпляром класса через ссылку - это « injection ».
Очевидно, что вы можете реализовать эту технику во многом так, как вы хотите, с точки зрения ООП, см., Например, конструктор инъекции , s .
Делегирование третьей стороны для выполнения задачи сопоставления ссылки объекту очень полезно, когда вы хотите полностью разделить компонент, который нуждается в некоторых услугах от реализации одних и тех же сервисов.
Таким образом, при разработке компонентов вы можете сосредоточиться исключительно на своей архитектуре и своей конкретной логике, доверяя интерфейсам для взаимодействия с другими объектами, не беспокоясь о каких-либо изменениях в реализации объектов / сервисов, а также если тот же объект, который вы используете, будет полностью заменен (очевидно, соблюдая интерфейс).
function changeText() {
return document.querySelector("#button").innerHTML = "New text";
}
document.addEventListener("click", changeText);
<button type="button" id="button">Text</button>
Я хочу, чтобы кнопка говорила «DELIVER ME» до тех пор, пока вы не нажмете ее, а затем, как только вы нажмете на нее, кнопка выдаст «GTFO»
blockquote>Для этой кнопки:
<input type="button" id="myButton" value="DELIVER ME">
Вы можете сделать это следующим образом:
const myButton = document.getElementById("myButton"); myButton.addEventListener("click", function() { this.value = "G.T.F.O." });
Или, если кнопка выглядит так:
<button id="myButton">DELIVER ME</button>
Вы бы сделали:
const myButton = document.getElementById("myButton"); myButton.addEventListener("click", function() { this.innerText = "G.T.F.O." });
Большая часть ответа может решить вашу конкретную проблему, но я просто хочу добавить больше информации о выборе htmlElement.
в VanillaJS (чистый Javascript) DOM. Вы можете выбрать элемент с помощью метода 3 DOM.
Выбрать по атрибуту идентификатора
elem = document.getElementById("id")
Выбрать по атрибуту класса
elem = document.getElementsByClassName("class")
Выберите по TagName
elem = document.getElementByTagName("Tag")
и еще 1 дополнительный способ, который использовали.
elem = document.querySelector(selector)
Селектор может быть одним из «.class», «# id» или «Теги»
Спасибо
<button type="button" id="btn" onclick=changeButtonText()>deliver me</button>
<script>
function changeButtonText(){
document.getElementById("btn").innerHTML = "GTFO";
}
</script>