javascript classes
class Car {
constructor(brand) {
this.carname = brand;
}
present() {
return "I have a " + this.carname;
}
}
/*
classes are just fancy constructors
they have some amazing feutures
in a class the contructor function get's called
when creating an new instance of that class*/
var mycar = new Car("dikke bmw");
mycar.present();
//JavaScript class: Here a quick code example
// Basic class
class Rectangle {
// Constructor
constructor(height, width) {
// Member variables
this.height = height;
this.width = width;
// Access static member variable
Rectangle.count++;
}
// Getter
get area() {
return this.calcArea();
}
// Method
calcArea() {
return this.height * this.width;
}
// Static method
static calcArea(width, height) {
return width * height;
}
}
// Static member variable
Rectangle.count = 0;
// Class instantiation
const square = new Rectangle(10, 10);
// Access member variable
console.log(square.height, square.width); // 10 10
// Call getter
console.log(square.area); // 100
// Call method
console.log(square.calcArea()); // 100
// Access static member variable
console.log(Rectangle.count); // 1
// Call static method
console.log(Rectangle.calcArea(15, 15)); // 225
<script>
class Student {
constructor(rno,fname,lname){
this.rno = rno
this.fname = fname
this.lname = lname
console.log('inside constructor')
}
set rollno(newRollno){
console.log("inside setter")
this.rno = newRollno
}
}
let s1 = new Student(101,'Sachin','Tendulkar')
console.log(s1)
//setter is called
s1.rollno = 201
console.log(s1)
</script>
//use classes by initiating one like so:
class MyClass {
constructor(FirstProperty, SecondProperty, etcetera) {
//The constructor function is called with the new class
//instance's parameters, so this will be called like so:
//var classExample = new MyClass("FirstProperty's Value", ...)
this.firstProperty = FirstProperty;
this.secondProperty = SecondProperty;
}
//creat methods just like functions:
method(Parameters) {
//Code Here
}
//getters are properties that are calculated when called, versus fixed
//variables, but still have no parenthesis when used
get getBothValues()
{
return [firstProperty, secondProperty];
}
}
//Note: this is all syntax sugar reducing the boilerplate versus a
// function-defined object.