@wywm@z[y[W
@ | @wywm@ | @ |
@ | |JavaScripťp|@ | @ |
ŏIXVF2024N1229
@NX쐬ƂÃ\bhAvpeBŜł͑ςȂ̂ŁAJavaScriptł́ApƌĂ@pāAʂ̃NX̋@\p悤ɂ܂Bȉ̗ł́AOo^personƂNXƁAOAX֔ԍAZAdbԍo^address2̃NXANXpersongNXaddresśANXperson̎qNXƂ܂Bȉł́ÅŴɁAextendspāAclass address extends personƋLqĂ܂BƁANXaddresśANXpersoñ\bhƃvpeBp邱Ƃł܂B
@܂ApersoñCX^Xׂzpersonsaddress̃CX^XׂzaddressespӂAindexvpeBݒ肷邽߂ɁApersonsp̃JE^count1ƁAaddressesp̃JE^count2pӂ܂Bcount1count2́AꂼApersonaddress̃CX^XƂ1Azpersonsaddresses̓YƂȂ܂B
@NXpersonconstructoŕAOĂnameƂāAnamevpeBindexvpeBɖOƔԍݒ肵AzpersonspersoñCX^Xgo^܂BNXpersońApersons̒CX^XTz̓Y(indexvpeBł͂ȂYAindexƈvĂ͂ł)Ԃsearch1Ƃ\bhƁACX^XindexvpeBnamevpeB\show1Ƃ\bhĂ܂B
@NXaddressconstructoŕAOAX֔ԍAZAdbԍƂAOɂẮAeNXconstructor(super()ƋLq܂AqNXconstructorł́AKŏsuper()Ăяo܂)namenāAnamevpeBo^܂B̌ANXaddresspostcodevpeBAaddressvpeBAtelnovpeBɁAX֔ԍAZAdbԍݒ肵Azaddressesaddress̃CX^Xgo^܂BNXaddresśACX^XTsearch1ƁACX^X̓e\show1Ƃ\bhĂ܂B
@eNXpersonƎqNXaddressshow1search1̃\bhLĂ悤Ɍ܂Aaddressshow1́Apersonshow1㏑Ă܂Baddresssearch1̒ł́Asuper.search1()Ƃ(\bh̒ł́AeNX̃\bhgƂ"super."t܂)eNXsearch1\bh𗘗p悤ɂȂĂAaddresssearch1͔zpersonsɂYƁAzaddressesɂY̗zŕԂ悤ɂȂĂ܂B̂悤JavaScriptł́AeNX̃\bh㏑邱ƂA܂̂܂ܗp邱Ƃł悤ɂȂĂ܂B
@p@\mFȉɎ܂BHTMLt̃\[XER[h(Google Chromeŕ\[F12]ŊJc[N\[X\Ă)B class person {
constructor(name) {
this.name = name;
this.index = count1;
persons.push(this);
count1++;
}
search1() {
var i1 = persons.findIndex((a6) => a6.name === this.name);
return i1;
}
show1() {
comment("person", this.index, this.name);
}
}
class address extends person {
constructor(name, postcode, address, telno) {
super(name);
this.postcode = postcode;
this.address = address;
this.telno = telno;
this.index = count2;
addresses.push(this);
count2++;
}
search1() {
var i2 = super.search1();
var i3 = addresses.findIndex((a7) => a7.name === this.name);
return [i2, i3];
}
show1() {
comment("address", this.index, this.name, "" + this.postcode, this.address, this.telno);
}
}
var count1 = 0;
var count2 = 0;
var persons = [];
var addresses = [];
var p1 = new person("؈Y");
p1.show1();
var a8 = new address("Ԏq", "104-0061", "s9-12-15", "03-6229-33XX");
a8.show1();
var a9 = new address("cY", "231-0005", "_ސ쌧ls{7-11-5", "045-203-27YY");
a9.show1();
var p2 = new person("]Nq");
p2.show1();
var i4 = p2.search1();
comment("search1(p)", persons[i4].index, persons[i4].name);
var a10 = a9.search1();
comment("search1(a)", persons[a10[0]].index, persons[a10[0]].name, addresses[a10[1]].index, addresses[a10[1]].name);
function comment(...ar1) {
var com1 = "";
for (var arg of ar1) {
var type1 = typeof(arg);
if (com1.length > 0) {
com1 = com1 + ', ';
}
if (type1 == "number") {
com1 = com1 + String(arg);
}
else if (type1 == "boolean") {
if (arg) {
com1 = com1 + "true";
}
else {
com1 = com1+ "false";
}
}
else if (type1 == "object") {
com1 = com1 + 'obj:' + arg.name;
}
else if (type1 == "function") {
com1 = com1 + 'func:' + arg.name;
}
else {
com1 = com1 + arg;
}
}
alert(com1);
}
@LŁAcomment́Aɕf[^(邩킩Ȃ̂ŁAc]...ar1𗘗pĂ܂)^Cvɍ킹ĕ\܂BNXpersonshow1ANXaddressshow1Acomment𗘗pĂ܂B
@Lł́AA]̖OCコƏc̖OƏZo^āAo^e\A܂ACX^X̒Ťʂs\悤ɂȂĂ܂B
yLz@LłB̊F܂̂x肽A낵肢܂B
yLz@L͂܂łłB