Teachnique
      CourseRoadmaps
      Login

      OverviewPlacementSyntaxHello WorldConsole.log()CommentsVariableslet StatementConstantsData TypesType ConversionsStrict ModeReserved Keywords

      OperatorsArithmetic OperatorsComparison OperatorsLogical OperatorsBitwise OperatorsAssignment OperatorsConditional Operatorstypeof OperatorNullish Coalescing OperatorDelete OperatorComma OperatorGrouping OperatorYield OperatorSpread OperatorExponentiation OperatorOperator Precedence

      If...ElseWhile LoopsFor LoopFor...in LoopFor...of LoopLoop ControlBreak StatementContinue StatementSwitch CaseUser Defined Iterators

      FunctionsFunction ExpressionsFunction ParametersDefault ParametersFunction() ConstructorFunction HoistingArrow FunctionsFunction InvocationFunction call() MethodFunction apply() MethodFunction bind() MethodClosuresVariable ScopeGlobal VariablesSmart Function Parameters

      NumberBooleanStringsArraysDateMathRegExpSymbolSetsWeakSetMapsWeakMapIterablesReflectTypedArrayTempate LiteralsTagged Templates

      Objects OverviewClassesObject PropertiesObject MethodsStatic MethodsDisplay ObjectsObject AccessorsObject ConstructorsNative PrototypesES5 Object MethodsEncapsulationInheritanceAbstractionPolymorphismDestructuring AssignmentObject DestructuringArray DestructuringNested DestructuringOptional ChainingGlobal ObjectMixinsProxies

      HistoryVersionsES5ES6ECMAScript 2016ECMAScript 2017ECMAScript 2018ECMAScript 2019ECMAScript 2020ECMAScript 2021ECMAScript 2022

      CookiesCookie AttributesDeleting Cookies

      Browser Object ModelWindow ObjectDocument ObjectScreen ObjectHistory ObjectNavigator ObjectLocation ObjectConsole Object

      Web APIHistory APIStorage APIForms APIWorker APIFetch APIGeolocation API

      EventsDOM Events

      Feedback

      Submit request if you have any questions.

      Course
      Static Methods

      JavaScript Tutorial

      This JavaScript tutorial is crafted for beginners to introduce them to the basics and advanced concepts of JavaScript. By the end of this guide, you'll reach a proficiency level that sets the stage for further growth. Aimed at empowering you to progress towards becoming a world-class software developer, this tutorial paves the way for a successful career in web development and beyond.

      Static Methods

      What are Static Methods?

      A static method in JavaScript is defined using the static keyword followed by the method name. You can execute the static method by taking the class name as a reference rather than an instance of the class.
      The main benefit of the static method is that it can be used to create a utility function that doesn't require the instance of the class for the execution. For example, a Math object contains various static methods, which we can invoke through Math class directly.
      Also, you can use static methods to add all related methods under a single namespace. Furthermore, static methods give better performance than the regular class methods due to memory optimization.
      In the following syntax, we define a static method called getSize() in the class called Table
      class Table {
      static getSize() { // Static method
      return "10 x 10";
      }
      }
      Table.getSize(); // Static method invocation
      In the above syntax, getSize() is a static method. We used the class name to execute the getSize() method.

      Examples

      Let's understand the JavaScript static methods with the help of some examples of difference use-cases

      Example: Static Method

      In the example below, printSize() is a static method, and getSize() is a regular method in the table class. You can see that printSize() method is invoked using the table class name, and getSize() method is executed using the class instance.
      So, the class can contain static and non-static both methods.
      <html>
      <body>
      <p id = "demo"> </p>
      <script>
      const output = document.getElementById("demo");
      
      class Table {
      static printSize() {
      return "The size of the table is: 20 x 20 <br>";
      }
      
      getColor() {
      return "Black";
      }
      }
      
      output.innerHTML = Table.printSize(); // Static method execution
      const tableObj = new Table();
      output.innerHTML += "The color of the table is: " + tableObj.getColor();
      </script>
      </body>
      </html>

      Output

      The size of the table is: 20 x 20
      The color of the table is: Black
      The single class can also contain multiple static methods.

      Example: Multiple Static Methods

      In the below code, the table class contains the printSize() and getSize() static methods. Both methods are executed by taking the class name as a reference.
      <html>
      <body>
      <p id = "output"> </p>
      <script>
      class Table {
      static printSize() {
      return "The size of the table is 20 x 20 <br>";
      }
      
      static getColor() {
      return "The color of the table is Pink";
      }
      }
      
      document.getElementById("output").innerHTML =
      Table.printSize() + "br" +
      Table.getColor();
      </script>
      </body>
      </html>

      Output

      The size of the table is 20 x 20
      brThe color of the table is Pink
      A single class can contain multiple static methods with the same name. When you execute the static method with the same name, it executes the last method.

      Example: Static Methods with the Same Name

      In the example below, the table class contains the duplicate printSize() method. In the output, you can observe that the code executes the second printSize() method.
      <html>
      <body>
      <p id = "output"> </p>
      <script>
      class Table {
      static printSize() {
      return"The size of the table is: 20 x 20 <br>";
      }
      
      static printSize() {
      return "The size of the table is: 30 x 30 <br>";
      }
      }
      document.getElementById("output").innerHTML = Table.printSize(); // Static method execution
      </script>
      </body>
      </html>

      Output

      The size of the table is: 30 x 30
      You can also execute the static method of the class in the constructor. You can use this keyword followed by the constructor keyword followed by the static method name to execute the static method in the constructor.

      Example: Static Method Execution in the Constructor

      In the example below, the Num class contains the getSqrt() static method. We have executed the getSqrt() method in the constructor.
      Whenever you create a new object of the Num class, it will store the square root of the number in the 'sqrt' property of the class.
      <html>
      <body>
      <p id = "output">The square root of the 10 is: </p>
      <script>
      class Num {
      constructor(a) {
      // Static method execution
      this.sqrt = this.constructor.getSqrt(a);
      }
      
      static getSqrt(a) {
      return a * a;
      }
      }
      const num1 = new Num(10);
      document.getElementById("output").innerHTML += num1.sqrt;
      </script>
      </body>
      </html>

      Output

      The square root of the 10 is: 100
      You can also execute the static method in the non-static method. You need to use the class name as a reference to execute the static method in the non-static method.

      Example: Static Method Execution in Non-Static Method

      In the example below, getSqrt() is a static method, and printSqrt() is a regular class method. In the printSqrt() method, we execute the getSqrt() method.
      We used the instance of the Num class to execute the printSqrt() method.
      <html>
      <body>
      <p id = "demo"> </p>
      <script>
      const output = document.getElementById("demo");
      class Num {
      static getSqr(a) {
      return a * a;
      }
      
      printSqr(a) {
      output.innerHTML += "The square of " + a + " is: " + Num.getSqr(a) + "<br>";
      }
      }
      const num1 = new Num();
      num1.printSqr(6);
      </script>
      </body>
      </html>

      Output

      The square of 6 is: 36