Constructorfuncties, zoals Array, bieden een breed scala aan methoden en eigenschappen waarvan u gebruik kunt maken. Maar heb je ooit gewenst dat een van deze objecten een methode aanbood die niet is ingebouwd? Is er een manier om dit zelf te doen? Absoluut! Laten we kijken hoe.
Dit kleine fragment maakt gebruik van de "omgekeerde" methode van het array-object en past de functionaliteit ervan toe op een gegeven tekenreeks. In feite wordt zoiets als 'hallo' omgezet in 'olleh' en kan worden geopend met 'myString.reverse ()'.
String.prototype.reverse = function () return Array.prototype.reverse.apply (this.split (")). Join ("); ; var myString = 'hallo'; console.log (myString.reverse ());
Nu we een basiskennis hebben van het vergroten van objecten, kun je een manier bedenken om een aangepaste "bevat" -methode te schrijven voor het String-object? Met de jQuery-bibliotheek kunnen we bijvoorbeeld dingen schrijven als:
$ ("div: contains ('John')"). css ('fontWeight', 'bold');
Het bovenstaande fragment doorzoekt alle div's op de pagina en filtert die ingepakte set dan alleen naar die met de string 'John'. Hoe kunnen we het String-object met onbewerkte JavaScript-code uitbreiden om dit mogelijk te maken? Laat uw oplossing achter in de opmerkingen en we bespreken het!