🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.www
Article #408623

Javascript ES6 - bezużyteczne dziedziczenie klas?

#408623
From: Marek S
Date: Sun, 21 Jan 2018 22:56
41 lines
1683 bytes
Mamy następującą sytuację. Dwóch programistów napisało dwie klasy. Każdy 
z nich wykorzystał zmienną "a" w swoich klasach. W JS nie ma zmiennych 
prywatnych więc skutek tego jest taki, że jeśli teraz programista klasy 
bClass będzie chciał dziedziczyć aClass to szlag trafi całą 
funkcjonalność. Obie klasy do zupełnie innych celów wykorzystywały 
zmienną "a". Jedna klasa będzie grzebała w zmiennych drugiej. Da się nad 
tym zapanować?


"use strict";

class aClass {
	readFromA() {
		console.log(this.a);
	}
	
	
	constructor() {
		this.a = 5;
	}
}

class bClass extends aClass {
	readFromB() {
		console.log(this.a);
	}
	
	
	constructor() {
		super();
		this.a=10;
	}
}

let bc=new bClass();
bc.readFromA(); //pokaże 10
bc.readFromB(); //pokaże 10

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <p435rs$v2n$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Marek S <precz@spamowi.com>
Newsgroups: pl.comp.www
Subject: Javascript ES6 - bezużyteczne dziedziczenie klas?
Date: Sun, 21 Jan 2018 23:56:56 +0100
Organization: ATMAN - ATM S.A.
Lines: 41
Message-ID: <p435rs$v2n$1@node2.news.atman.pl>
NNTP-Posting-Host: 89-69-207-111.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1516575420 31831 89.69.207.111 (21 Jan 2018 22:57:00 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Sun, 21 Jan 2018 22:57:00 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2
X-Mozilla-News-Host: news://news.atman.pl:119
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit