JavaScript ਕਲਾਸ ਇਨਹੈਰਿਟੈਂਸ
- ਪਿਛਲਾ ਪੰਨਾ JS ਕਲਾਸ ਸਰਮਪਲ
- ਅਗਲਾ ਪੰਨਾ JS ਸਟੈਟਿਕ
ਕਲਾਸ ਇਨਹੈਰਿਟੈਂਸ
ਕਲਾਸ ਇਨਹੈਰਿਟੈਂਸ ਬਣਾਉਣ ਲਈ ਇਸ ਦਾ ਉਪਯੋਗ ਕਰੋ: extends
关键字。
ਕਲਾਸ ਇਨਹੈਰਿਟੈਂਸ ਦੇ ਮਾਧਿਅਮ ਨਾਲ ਬਣਾਈ ਗਈ ਕਲਾਸ ਦੂਜੀ ਕਲਾਸ ਦੇ ਸਾਰੇ ਤਰੀਕਿਆਂ ਨੂੰ ਉਤਰਦੀ ਹੈ:
ਇੰਸਟੈਂਸ
ਇੱਕ ਨਾਮ "Model" ਦਾ ਕਲਾਸ ਬਣਾਓ ਜੋ "Car" ਕਲਾਸ ਦੇ ਤਰੀਕਿਆਂ ਨੂੰ ਉਤਰਿਆ ਹੋਵੇ:
class Car { constructor(brand) { this.carname = brand; } present() { return 'ਮੈਂ ਇੱਕ ' + this.carname; } } class Model extends Car { constructor(brand, mod) { super(brand); this.model = mod; } show() { return this.present() + ', it is a ' + this.model; } } let myCar = new Model("Ford", "Mustang"); document.getElementById("demo").innerHTML = myCar.show();
super()
方法引用父类。
通过在 constructor 方法中调用 super()
方法,我们调用了父级的 constructor 方法,获得了父级的属性和方法的访问权限。
继承对于代码可重用性很有用:在创建新类时重用现有类的属性和方法。
Getter 和 Setter
类还允许您使用 getter 和 setter。
为您的属性使用 getter 和 setter 很聪明,特别是如果您想在返回它们之前或在设置它们之前对值做一些特殊的事情。
如需在类中添加 getter 和 setter,请使用 get
和 set
关键字。
ਇੰਸਟੈਂਸ
为 "carname" 属性创建 getter 和 setter:
class Car { constructor(brand) { this.carname = brand; } get cnam() { return this.carname; } set cnam(x) { this.carname = x; } } let myCar = new Car("Ford"); document.getElementById("demo").innerHTML = myCar.cnam;
ਟਿੱਪਣੀਆਂ:即使 getter 是一个方法,当你想要获取属性值时也不要使用括号。
getter/setter 方法的名称不能与属性名称相同,在本例中为 carname
。
许多程序员在属性名称前使用下划线字符 _ 将 getter/setter 与实际属性分开:
ਇੰਸਟੈਂਸ
您可以使用下划线字符将 getter/setter 与实际属性分开:
class Car { constructor(brand) { this._carname = brand; } get carname() { return this._carname; } set carname(x) { this._carname = x; } } let myCar = new Car("Ford"); document.getElementById("demo").innerHTML = myCar.carname;
如需使用 setter,请使用与设置属性值相同的语法,不带括号:
ਇੰਸਟੈਂਸ
使用 setter 将汽车名称更改为 "Volvo":
class Car { constructor(brand) { this._carname = brand; } get carname() { return this._carname; } set carname(x) { this._carname = x; } } let myCar = new Car("Ford"); myCar.carname = "Volvo"; document.getElementById("demo").innerHTML = myCar.carname;
Hoisting
ਫੰਕਸ਼ਨ ਅਤੇ ਹੋਰ JavaScript ਐਲਾਨਾਂ ਨਾਲ ਅਲੱਗ, ਕਲਾਸ ਐਲਾਨਾਂ ਨੂੰ ਹਾਊਸਿੰਗ ਨਹੀਂ ਹੁੰਦਾ ਹੈ。
ਇਹ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਪਹਿਲਾਂ ਕਲਾਸ ਦਾ ਐਲਾਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਹੀ ਇਸ ਦਾ ਇਸਤੇਮਾਲ ਕਰ ਸਕਦੇ ਹੋ
ਇੰਸਟੈਂਸ
//ਤੁਸੀਂ ਇਸ ਕਲਾਸ ਨੂੰ ਇਸਤੇਮਾਲ ਨਹੀਂ ਕਰ ਸਕਦੇ। //myCar = new Car("Ford") //ਇਹ ਇੱਕ ਖਾਲੀ ਗਲਤੀ ਪੈਦਾ ਕਰੇਗਾ。 class Car { constructor(brand) { this.carname = brand; } } //ਹੁਣ ਤੁਸੀਂ ਇਸ ਕਲਾਸ ਦਾ ਇਸਤੇਮਾਲ ਕਰ ਸਕਦੇ ਹੋ let myCar = new Car("Ford")
ਟਿੱਪਣੀਆਂ:ਹੋਰ ਐਲਾਨਾਂ ਦੇ ਲਈ, ਜਿਵੇਂ ਕਿ ਫੰਕਸ਼ਨ, ਇਸ ਦੇ ਸਾਰਥਕ ਵਰਤੋਂ ਨਾਲ ਇਕਰਾਰ ਨਹੀਂ ਹੁੰਦਾ ਹੈ ਕਿਉਂਕਿ JavaScript ਐਲਾਨਾਂ ਦਾ ਮੂਲਤਬੀ ਵਰਤੋਂ ਹੈ (ਐਲਾਨ ਨੂੰ ਉੱਚੇ ਵਿੱਚ ਲਿਆਉਣਾ)।
- ਪਿਛਲਾ ਪੰਨਾ JS ਕਲਾਸ ਸਰਮਪਲ
- ਅਗਲਾ ਪੰਨਾ JS ਸਟੈਟਿਕ