Konstruktörsfunktioner, som Array, erbjuder ett brett utbud av metoder och egenskaper som du kan utnyttja. Men har någonsin velat att ett av dessa föremål erbjuder en metod som inte är inbyggd? Finns det ett sätt att göra det själv? Absolut! Låt oss se hur.
Det här lilla fragmentet utnyttjar Array-objektets "omvänd" -metod och tillämpar sin funktionalitet på en viss sträng. I själva verket blir något som "hej" förvandlat till "olleh" och kan nås med "myString.reverse ()".
String.prototype.reverse = function () returnera Array.prototype.reverse.apply (this.split (")). Join ("); ; var myString = 'hej'; console.log (myString.reverse ());
Nu när vi har en förståelse för att förstärka objekt, kan du räkna ut ett sätt att skriva en anpassad "innehåller" metod för strängobjektet? Till exempel tillåter jQuery-biblioteket oss att skriva saker som:
$ ("div: innehåller ('John') '). css (' fontWeight ',' bold ');
Utgåvan ovan kommer att söka igenom alla divs på sidan, och filtrera sedan den förpackade uppsättningen till endast de som innehåller strängen "John". Hur kan vi utvidga strängobjektet med rå JavaScript för att tillåta detta? Lämna din lösning i kommentarerna, och vi kommer att diskutera!