Af hankelijkheidsinjectie is een software-ontwerppatroon dat de manier verandert waarop modules afhankelijkheden creëren. In plaats van interne instantiatie zijn afhankelijkheden van buitenaf geïnjecteerd. Dit verbetert de mogelijkheid van een module om onder verschillende omstandigheden te werken en verhoogt de testbaarheid van uw code.
Hier is een eenvoudig voorbeeld van hoe je dat zou doen in JavaScript:
```
function myModule(dep1, dep2) {
this.dep1 = dep1;
this.dep2 = dep2;
}
function factory() {
var dep1 = new Dep1();
var dep2 = new Dep2();
return new myModule(dep1, dep2);
}
var myModuleInstance = factory();
```
Met de bovenstaande code wordt het mogelijk myModule te testen door nep-versies van dep1 en dep2 te injecteren. De fabricagefunctie is verantwoordelijk voor het correct assembleren van de objecten.
Sommige JavaScript-frameworks zoals Angular hebben hun eigen ingebouwde manieren om met afhankelijkheidsinjectie om te gaan.
Bijvoorbeeld:
```
var app = angular.module(‘myApp’, []);
app.service(‘myService’, function() {
this.message = ‘Hello from myService’;
});
app.controller(‘myController’, [‘myService’, function(myService) {
console.log(myService.message);
}]);
```
In dit voorbeeld wordt ‘myService’ geïnjecteerd als een afhankelijkheid van ‘myController’. AngularJS zorgt voor de objectinstantie en injecteert deze waar nodig.
Let op: Afhankelijkheidsinjectie kan ook worden bereikt met behulp van moderne JavaScript-technieken zoals import en require().