Page 176 - JavaScript
P. 176

Chapter 19: Classes




        Syntax



            •  class Foo {}
            •  class Foo extends Bar {}
            •  class Foo { constructor() {} }
            •  class Foo { myMethod() {} }
            •  class Foo { get myProperty() {} }
            •  class Foo { set myProperty(newValue) {} }
            •  class Foo { static myStaticMethod() {} }
            •  class Foo { static get myStaticProperty() {} }
            •  const Foo = class Foo {};
            •  const Foo = class {};


        Remarks



        class support was only added to JavaScript as part of the 2015 es6 standard.

        Javascript classes are syntactical sugar over JavaScript's already existing prototype-based
        inheritance. This new syntax does not introduce a new object-oriented inheritance model to
        JavaScript, just a simpler way to deal with objects and inheritance. A class declaration is
        essentially a shorthand for manually defining a constructor function and adding properties to the
        prototype of the constructor. An important difference is that functions can be called directly
        (without the new keyword), whereas a class called directly will throw an exception.


         class someClass {
             constructor () {}
             someMethod () {}
         }

         console.log(typeof someClass);
         console.log(someClass);
         console.log(someClass === someClass.prototype.constructor);
         console.log(someClass.prototype.someMethod);

         // Output:
         // function
         // function someClass() { "use strict"; }
         // true
         // function () { "use strict"; }


        If you are using an earlier version of JavaScript you will need a transpiler like babel or google-
        closure-compiler in order to compile the code into a version that the target platform will be able to
        understand.


        Examples





        https://riptutorial.com/                                                                             133
   171   172   173   174   175   176   177   178   179   180   181