what is the use of javascript static methods on classes
class myClass{
constructor(){
this.myLocaleVariable=1;//this.varname in the constructer function makes a locale var
}
localfunction(){
return "im local unique to this variable";
}
static publicfunction(){
return "i can be called without an obj"
}
}
myClass.myPublicVariable = 0;
myClass.localfunction();//error
myClass.publicfunction();//"i can be called without an obj"
myClass.myLocaleVariable;//error
myClass.myPublicVariable;//0
var obj = new myClass;
obj.localfunction();//"im local unique to this variable"
obj.publicfunction();//error
obj.myLocaleVariable;//1
obj.myPublicVariable;//error
3.7
10
// Classes : static methods in javascript classes
class Square {
constructor(width){
this.width = width ;
this.height = width ;
}
static equals(a , b){
return a.width * a.height === b.width * b.height ;
}
static validDimensions(width , height ){
return width === height ;
}
}
console.log(Square.validDimensions(8 , 8));
console.log(Square.validDimensions(10 , 12));
console.log(Square.validDimensions(0 ,0 ));
console.log(Square.validDimensions(2 , 3));
console.log(Square.validDimensions(-3 , -3));
Thank you!
10
0
3.5
4
// javascript static methods on Classes are called via the Class Name not via the class Instances
class Square {
constructor(width){
this.width = width ;
this.height = width ;
}
static equals(a , b){
return a.width * a.height === b.width * b.height ;
}
}
const newSquare1 = new Square(10);
const newSquare2 = new Square(9);
const newSquare3 = new Square(5);
const newSquare4 = new Square(5);
console.log(Square.equals(newSquare1 , newSquare2));
console.log(Square.equals(newSquare3 , newSquare4));
Thank you!
4
0
4
2
class Hi {
constructor() {
console.log("hi");
}
my_method(){}
static my_static_method() {}
}
function getStaticMethods(cl) {
return Object.getOwnPropertyNames(cl)
}
console.log(getStaticMethods(Hi))
// => [ 'length', 'prototype', 'my_static_method', 'name' ]
Thank you!
2
0
5
1
// *** JS Class STATIC method ***
class Animal {
sayHello() {
return `${this.constructor.greeting}! I'm ${this.name}!`;
}
}
class Cat extends Animal {
constructor(name) {
super(); // connects parent to child/constructor
this.name = name; //=> need this line otherwise name undefined
}
static greeting = 'Feed me';
}
class Dog extends Animal {
constructor(name) {
super();
this.name = name; // same output type as above
}
static greeting = 'Sigh';
}
const run = document.getElementById("run");
run.addEventListener('click', () => {
let Garfield = new Cat('Garfield');
let Snoopy = new Dog('Snoopy');
console.log(Garfield.sayHello());
console.log(Snoopy.sayHello());
})
// output = Feed me! I'm Garfield! Sigh! I'm Snoopy!
Thank you!
1
0
Are there any code examples left?
New code examples in category Javascript