āĻā§āώā§āϤā§āϰ
āĻā§āϞāĻžāϏ āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋ āϏāϰāĻžāϏāϰāĻŋ āĻāĻāĻāĻŋ āĻļā§āϰā§āĻŖā§āϰ āĻŽā§āϞ āĻ
āĻāĻļā§āϰ āĻŽāϧā§āϝ⧠āĻā§āώāĻŖāĻž āĻāϰāĻž āĻšāϝāĻŧ, this
āĻŽāĻžāύā§āϰ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻšāĻŋāϏāĻžāĻŦā§ āϏā§āĻĒāώā§āĻāĻāĻžāĻŦā§ āϝā§āĻ āĻāϰāĻž āĻšāϝāĻŧ āύāĻžāĨ¤ āϝāĻžāĻāĻšā§āĻ, āĻĢāϞāĻžāĻĢāϞ āĻāĻāĻ: āϏā§āĻ āĻļā§āϰā§āĻŖā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāĻāĻāĻŋ āϏāĻŽā§āĻĒāϤā§āϤāĻŋāĨ¤
class MyClass {
myField;
}
const myClassInstance = new MyClass();
myClassInstance;
> MyClass { myField: undefined }
āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻŽāĻžāύ āϏāĻš āĻāĻāĻāĻŋ āĻā§āώā§āϤā§āϰ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ āϝāĻž āĻā§āϞāĻžāϏā§āϰ āĻŽāϧā§āϝ⧠āϝā§āĻā§āϤāĻŋ āĻāĻāĻžāϰāϰāĻžāĻāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§:
class MyClass {
myResult = false;
set setValue( myValue ) {
this.myResult = myValue;
}
}
const myClassInstance = new MyClass();
myClassInstance;
> Object { myResult: false }
myClassInstance.setValue = true;
myClassInstance;\
> Object { myResult: true }
āĻā§āϞāĻžāϏ āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋ this
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻā§āϞāĻžāϏā§āϰ āϏāĻžāĻĨā§ āϏāĻāϝā§āĻā§āϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻžāϰā§āϝāĻāϰā§āĻāĻžāĻŦā§ āĻ
āĻāĻŋāύā§āύāĨ¤ āĻāϰ āĻŽāĻžāύ⧠āĻ
āύā§āϝ āϝā§āĻā§āύ āϏāĻŽā§āĻĒāϤā§āϤāĻŋāϰ āĻŽāϤ⧠āĻā§āϞāĻžāϏā§āϰ āĻŦāĻžāĻāϰ⧠āĻĨā§āĻā§ āĻāĻā§āϞāĻŋ āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāĻŦāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
class MyClass {
myField = true;
}
const myClassInstance = new MyClass();
myClassInstance.myField;
> true
myClassInstance.myField = false;
myClassInstance.myField;
> false;
āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻāϰāĻ āĻāύā§āύāϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāĻŋāϤā§āϤāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤
āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§āώā§āϤā§āϰ āĻāĻŦāĻ āĻĒāĻĻā§āϧāϤāĻŋ
āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻŦāĻžāĻāϰ⧠āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§āώā§āϤā§āϰ āĻāĻŦāĻ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏāϝā§āĻā§āϝ āύāϝāĻŧāĨ¤ āĻāĻāĻāĻŋ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āϏāĻŽā§āĻĒāϤā§āϤāĻŋ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āϏāĻžāĻĨā§ āϝā§āĻā§āϤ, āϝāĻžāϰ āĻ āϰā§āĻĨ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖā§ āϤāĻžāϰ āύāĻŋāĻāϏā§āĻŦ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§āώā§āϤā§āϰ āĻāĻŦāĻ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏā§āĻ āϰāϝāĻŧā§āĻā§, āϝā§āĻŽāύ āĻā§āϞāĻžāϏ⧠āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
āĻāĻāĻāĻŋ āϏāĻŽā§āĻĒāϤā§āϤāĻŋ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻāϰāϤā§, āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻā§āώāĻŖāĻž āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āϏāύāĻžāĻā§āϤāĻāĻžāϰā§āϰ āĻļā§āϰā§āϤ⧠āĻāĻāĻāĻŋ #
āϝā§āĻ āĻāϰā§āύ:
class MyClass {
#myPrivateField = true;
#myPrivateMethod() {}
}
const myClassInstance = new MyClass();
myClassInstance;
> MyClass { #myPrivateField: true }
#myPrivateField: true
<prototype>: Object { âĻ }
constructor: class MyClass {}
<prototype>: Object { âĻ }
āĻāĻāĻāĻŋ āĻĒā§āϰāĻžāĻāĻā§āĻ āĻĢāĻŋāϞā§āĻĄ āĻ
āĻŦāĻļā§āϝāĻ āĻāύā§āĻā§āύā§āĻ āĻā§āϞāĻžāϏā§āϰ āĻŦāĻĄāĻŋāϤ⧠āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻĒāύāĻŋ this
āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āĻšāĻŋāϏāĻžāĻŦā§ āĻĒāϰ⧠āĻāϰ āĻŽāĻžāύ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻŋ this
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻā§āώā§āϤā§āϰ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āύāĻžāĨ¤
āĻāĻāĻāĻŋ āϏā§āĻā§āϰāĻŋāĻĒā§āĻā§āϰ āĻ āύā§āϝ āĻā§āĻĨāĻžāĻ āĻĨā§āĻā§ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āϝāĻžāĻŦā§ āύāĻžā§ˇ āĻāĻāĻŋ āϤāĻžāĻĻā§āϰ āĻĨāĻžāĻāĻž āĻŽāĻžāύāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāĻĻāϤā§āϤ āĻā§āĻāĻžāϰ āĻāĻŦāĻ āϏā§āĻāĻžāϰ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻŦāĻžāĻāϰ⧠āĻĄā§āĻāĻž āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāĻā§ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻž āĻĨā§āĻā§ āĻŦāĻžāϧāĻž āĻĻā§āϝāĻŧ āĻāĻŦāĻ āĻāĻāĻŋ āĻā§āĻŦāϞāĻŽāĻžāϤā§āϰ āĻā§āϞāĻžāϏā§āϰ āĻŽāϧā§āϝā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ⧠āĻāϰāĻž āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋāϤ⧠āϏāϰāĻžāϏāϰāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏāĻā§ āĻŦāĻžāϧāĻž āĻĻā§āϝāĻŧāĨ¤
class MyClass {
#myResult = false;
set setValue( myValue ) {
this.#myResult = myValue;
}
}
const myClassInstance = new MyClass();
myClassInstance;
> MyClass { #myResult: false }
myClassInstance.#myResult = true;
> Uncaught SyntaxError: reference to undeclared private field or method #myResult
myClassInstance.setValue = true;
myClassInstance;\
> MyClass { #myResult: true }
āϝāĻžāĻāĻšā§āĻ, āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āĻŦā§āϰāĻžāĻāĻāĻžāϰāĻā§āϞāĻŋāϰ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰ⧠āĻāύāϏā§āϞāĻā§āϞāĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻāϝāĻŧā§āϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ⧠āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋāϤ⧠āĻ ā§āϝāĻžāĻā§āϏā§āϏā§āϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻŦāĻŋāώāϝāĻŧā§ āϏāĻžāϧāĻžāϰāύāϤ āĻā§āĻŦ āĻ āύā§āĻŽā§āĻĻāύāϝā§āĻā§āϝ , āϝāĻĻāĻŋāĻ āĻ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ:
class MyClass {
#myPrivateField = true;
#myPrivateMethod() {
console.log( "This is inside a private method." );
}
}
const myClassInstance = new MyClass();
myClassInstance;
> MyClass {#myPrivateField: true}
myClassInstance.#myPrivateField;
> true
myClassInstance.#myPrivateMethod();
> "This is inside a private method."
class MyClass {
#myPrivateField = true;
#myPrivateMethod() {
console.log( "This is inside a private method." );
}
}
const myClassInstance = new MyClass();
myClassInstance;
> MyClass {#myPrivateField: true}
myClassInstance.#myPrivateField;
> Uncaught SyntaxError: reference to undeclared private field or method #myPrivateField
myClassInstance.#myPrivateMethod();
> Uncaught SyntaxError: reference to undeclared private field or method #myPrivateMethod
āĻĒā§āϰāĻžāĻāĻā§āĻ āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻŽā§āϞ āĻ āĻāĻļā§ āĻĻā§āĻĸāĻŧāĻāĻžāĻŦā§ āϏā§āĻā§āĻĒ āĻāϰāĻž āĻšāϝāĻŧ āϝā§āĻāĻŋāϤ⧠āϏā§āĻā§āϞāĻŋ āϰāϝāĻŧā§āĻā§, āϝāĻžāϰ āĻ āϰā§āĻĨ āĻšāϞ āĻāĻŽāύāĻāĻŋ āĻļāĻŋāĻļā§ āĻā§āϞāĻžāϏāĻā§āϞāĻŋāĻ āĻ āĻāĻŋāĻāĻžāĻŦāĻ āĻļā§āϰā§āĻŖā§āϰ āϏāĻžāĻĨā§ āϝā§āĻā§āϤ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋāϤ⧠āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻž:
class MyClass {
#myPrivateField = true;
}
class ChildClass extends MyClass {
childMethod() {
console.log( this.#myPrivateField );
}
}
> Uncaught SyntaxError: reference to undeclared private field or method #myPrivateField
āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āώā§āϤā§āϰ āĻāĻŦāĻ āĻĒāĻĻā§āϧāϤāĻŋ
āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āώā§āϤā§āϰ āĻāĻŦāĻ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āύāĻŋāĻā§āĻ āĻāĻāĻāĻŋ āĻļā§āϰā§āĻŖā§āϰ āϏāĻĻāϏā§āϝ, āϏā§āĻ āĻļā§āϰā§āĻŖā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āϏāĻĻāϏā§āϝ āύāϝāĻŧāĨ¤ āĻāĻ āĻāĻžāϰāĻŖā§, āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āώā§āϤā§āϰāĻā§āϞāĻŋ āĻĄā§āĻāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻā§āύā§āĻĻā§āϰā§āϝāĻŧ āĻŦāĻŋāύā§āĻĻā§ āĻĒā§āϰāĻĻāĻžāύ āĻāϰ⧠āϝāĻž āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĻā§āώā§āĻāĻžāύā§āϤā§āϰ āĻāύā§āϝ āĻ āύāύā§āϝ āĻšāĻŦā§ āύāĻž, āϤāĻŦā§ āϏā§āĻ āĻĻā§āώā§āĻāĻžāύā§āϤāĻā§āϞāĻŋāϰ āĻāϞā§āϞā§āĻ āĻāϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϤ⧠āĻĒāĻžāϰ⧠- āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻļā§āϝāĻŧāĻžāϰ āĻāϰāĻž āĻāύāĻĢāĻŋāĻāĻžāϰā§āĻļāύ āϤāĻĨā§āϝāĨ¤ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻĻā§āώā§āĻāĻžāύā§āϤāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āĻĢāĻžāĻāĻļāύ, āϝā§āĻŽāύ āĻāĻāĻāĻŋ āĻā§āώā§āϤā§āϰā§āϰ āϏāĻžāĻĨā§ āϤā§āϞāύāĻž āĻāϰāĻž āĻŦāĻž āĻŦāĻžāĻāĻžāĻ āĻāϰāĻžāĨ¤
āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻļāϰā§āϰ⧠āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻā§āώā§āϤā§āϰ āĻāĻŦāĻ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāϤā§, static
āĻā§āĻāϝāĻŧāĻžāϰā§āĻĄāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ:
class MyClass {
static myStaticField;
static myStaticMethod() {}
}
const myClassInstance = new MyClass();
āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻĒāĻĻā§āϧāϤāĻŋ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĄāĻ āύā§āĻā§āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
class MyClass {
constructor() {}
}
MyClass.myStaticMethod = function() {}
āĻāĻĒāύāĻŋ āϤāĻžāĻĻā§āϰ āĻā§āϞāĻžāϏā§āϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĨā§āĻā§ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āύāĻž, āϤāĻŦā§ āϤāĻžāϰāĻž āĻā§āϞāĻžāϏ āĻāύāϏā§āĻā§āϰāĻžāĻā§āĻāϰ⧠āĻāĻĒāϞāĻŦā§āϧ:
class MyClass {
static myStaticField = true;
static myStaticMethod() {
console.log( "A static method." );
}
}
const myClassInstance = new MyClass();
myClassInstance.myStaticField;
> undefined
myClassInstance.myStaticMethod();
> Uncaught TypeError: myClassInstance.myStaticMethod is not a function
MyClass.myStaticField;
> true
MyClass.myStaticMethod();
> "A static method."
āĻāĻā§āϞāĻŋ āĻĒā§āϰāϝā§āĻā§āϤāĻŋāĻāϤāĻāĻžāĻŦā§ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ āύāĻž, āϤāĻŦā§ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋāϞāĻŋāĻāĻŋ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āĻ āύā§āĻļā§āϞāύāĨ¤ āĻāϰ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋāϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻĻā§āώā§āĻāĻžāύā§āϤāĻā§āϞāĻŋ āĻŦāĻžāĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āύāĻŋāĻŦā§āĻĻāĻŋāϤ āĻāĻāĻāĻŋ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦāĻž āĻāĻāĻāĻŋ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻĢā§āϝāĻžāĻā§āĻāϰāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰ⧠āϝāĻž āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏā§āϰ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āϏā§āĻāĻāĻĒ āϧāĻžāϰāĻŖ āĻāϰ⧠āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻā§āϞāĻžāϏā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§:
class User {
constructor( name, email ) {
this.name = name;
this.email = email;
}
static fromObject( myObject ) {
return new User( myObject.name, myObject.email ?? "Omitted" );
}
}
const userObject = {
"name" : "My Name",
"email" : "my@email.address"
};
const secondUserObject = {
"name" : "My Name"
};
const firstUser = User.fromObject( userObject );
const secondUser = User.fromObject( secondUserObject );
firstUser;
> Object { name: "My Name", email: "my@email.address" }
secondUser;
> Object { name: "My Name", email: "Omitted" }
āĻāĻĒāύāĻžāϰ āĻāĻĒāϞāĻŦā§āϧāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύ
āύāĻŋāĻā§āϰ āĻā§āύ āϧāϰāύā§āϰ āĻĢāĻŋāϞā§āĻĄā§ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻā§āϞāĻžāϏā§āϰ āĻāĻŋāϤāϰ āĻĨā§āĻā§ āĻĒā§āϰāĻŦā§āĻļ āĻāϰāĻž āϝāĻžāϝāĻŧ?
Static fields