How to add method to String class in JavaScript ?
Last Updated :
03 Jul, 2024
In this article, the task is to add a method to the String class in JavaScript. Two approaches are described with the proper examples:
Approaches to add Methods to String Class:
Approach 1: Using Object.defineProperty() method
The Object.defineProperty() method is used to define a new property directly to an object or modify an existing property. It takes 3 arguments, the first is Object, the Second is propertyName, and the last is propertyDescription. In this example, the sum of the length of strings is returned.
Syntax:
Object.defineProperties(obj, props)
Example: This example uses the above-explained approach.
JavaScript
// Input string
let str1 = "GeeksforGeeks";
let str2 = "A Computer Science Portal";
// Display input string
console.log(str1);
console.log(str2);
// Define custom method
Object.defineProperty(String.prototype, "SumOfLength", {
value: function (param) {
return this.length + param.length;
},
});
// Run custom method
function GFG_Fun() {
// Apply custom method
let res = str1.SumOfLength(str2);
// Display output
console.log("Total length: " + res);
}
// Funcion call
GFG_Fun();
OutputGeeksforGeeks
A Computer Science Portal
Total length: 38
Approach 2: Using String.prototype.propertyName method
The String.prototype.propertyName is used to add a new method to the String class. Define a method that takes arguments passed by the object and performs the desired operation. In this example, the sum of the length of strings is returned.
Syntax:
object.prototype.name = value
Example: This example uses the above-explained approach.
JavaScript
// Input string
let str1 = "JavaScript";
let str2 = "A Scripting Language for Web";
// Display input string
console.log(str1);
console.log(str2);
// Define custom method
String.prototype.SumOfLength = function (arg) {
return this.length + arg.length;
};
// Run custom method
function GFG_Fun() {
// Apply custom method
let res = str1.SumOfLength(str2);
// Display output
console.log("Total length: " + res);
}
// Funcion call
GFG_Fun();
OutputJavaScript
A Scripting Language for Web
Total length: 38
Approach 3: Using ES6 Classes
With ES6, you can use class syntax to define methods that will be added to the prototype of the String class. This approach allows for more structured and modern code.
Example:
JavaScript
// Input string
let str1 = "Open";
let str2 = "AI";
// Display input string
console.log(str1);
console.log(str2);
// Define custom method using ES6 class
class CustomStringMethods {
constructor(str) {
this.str = str;
}
// Custom method to calculate sum of lengths
sumOfLength(otherStr) {
return this.str.length + otherStr.length;
}
}
// Add custom method to String prototype
String.prototype.CustomStringMethods = function () {
return new CustomStringMethods(this);
};
// Run custom method
function customMethodExample() {
// Apply custom method
const customString1 = str1.CustomStringMethods();
const customString2 = str2.CustomStringMethods();
const res = customString1.sumOfLength(str2);
// Display output
console.log("Total length: " + res);
}
// Function call
customMethodExample();
OutputOpen
AI
Total length: 6
Approach 4: Using ES6 Symbols
Symbols are a new primitive type introduced in ES6, and they are often used to add unique properties to objects, ensuring that property names do not collide with other properties. This approach leverages Symbols to add a method to the String class.
Example: This example demonstrates how to use Symbols to add a method to the String class to calculate the sum of the lengths of two strings.
JavaScript
// Input string
let str1 = "Hello";
let str2 = "World!";
// Display input string
console.log(str1);
console.log(str2);
// Define a unique Symbol
const sumOfLengthSymbol = Symbol('sumOfLength');
// Define custom method using Symbol
String.prototype[sumOfLengthSymbol] = function(arg) {
return this.length + arg.length;
};
// Run custom method
function customMethodWithSymbolExample() {
// Apply custom method
let res = str1[sumOfLengthSymbol](str2);
// Display output
console.log("Total length: " + res);
}
// Function call
customMethodWithSymbolExample();
OutputHello
World!
Total length: 11
Approach 5: Using Object.assign
Using Object.assign to add a method to the String prototype involves extending the String class by assigning a new method directly to String.prototype. This allows the method to be available on all string instances.
Example
JavaScript
Object.assign(String.prototype, {
reverse() {
return this.split('').reverse().join('');
}
});
console.log("hello".reverse()); // "olleh"
Similar Reads
How to modify a string in JavaScript ?
JavaScript strings are used for storing and manipulating text. It can contain zero or more characters within quotes and its indexing starts with 0. Strings are defined as an array of characters. In Javascript, we can also convert strings to a Character array. Representing a String: 1. Using double
3 min read
How to Convert String to JSON in JavaScript?
In JavaScript, converting a string to JSON is important for handling data interchangeably between server and client, parsing external API responses, and storing structured data in applications. Below are the approaches to converting string to JSON in JavaScript: Table of Content Using JSON.parse()Us
2 min read
How to Print a String in JavaScript ?
In JavaScript, printing a string means displaying the contents of a string variable or literal to the console, webpage, or any other output medium. Strings are a fundamental data type in JavaScript, representing sequences of characters enclosed within single ('') or double ("") quotes. Table of Cont
2 min read
How to Convert JSON to string in JavaScript ?
In this article, we are going to learn the conversion of JSON to string in JavaScript. Converting JSON to a string in JavaScript means serializing a JavaScript object or data structure represented in JSON format into a textual JSON string for data storage or transmission.Several methods can be used
3 min read
How to Convert String to Camel Case in JavaScript?
We will be given a string and we have to convert it into the camel case. In this case, the first character of the string is converted into lowercase, and other characters after space will be converted into uppercase characters. These camel case strings are used in creating a variable that has meanin
4 min read
How to Create JSON String in JavaScript?
JSON strings are widely used for data interchange between a server and a client, or between different parts of a software system. So converting objects to JSON strings is very important for good client-server communication. Below are the following approaches to creating a JSON string: Table of Conte
2 min read
JavaScript - How to Count Words of a String?
Here are the various methods to count words of a string in JavaScript.1. Using split() MethodThe simplest and most common approach is to use the split() method to divide the string into an array of words and count the length of the array.JavaScriptconst count = (s) => s.trim().split(/\s+/).length
3 min read
String blink() Method in Javascript
In Javascript, the blink() method is a string method that is used to display a string inside the blink tag. Syntax: string.blink() Note: This method has been DEPRECATED and is no longer recommended. Parameter Values: This method does not accept any parameters. Return Values: It returns a string valu
1 min read
JavaScript String concat() Method
The concat() method in JavaScript join or concatenate two or more strings together. It does not change the existing strings and returns a new string. This method efficiently combines multiple strings into one, ensuring the original strings remain unchanged.Syntaxstr1.concat(str2, str3, str4,......,
3 min read
JavaScript String endsWith() Method
The JavaScript str.endsWith() method is used to check whether the given string ends with the characters of the specified string or notSyntax:str.endsWith(searchString, length)Parameters: searchString: The searchString is a string of characters that is to be searched at the end of the given string. l
3 min read