ãªããžã§ã¯ããã¯ã©ã¹ããããã¿ã€ãã®ç¶æ¿ã®æäœ
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- ãªããžã§ã¯ããªãã©ã«è¡šèšãšã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããŠãªããžã§ã¯ããäœæããã
- ãªããžã§ã¯ãã«ããããã£ãšé¢æ°ã代å
¥ããã
- JavaScript ã®ãªããžã§ã¯ãç¶æ¿ã«ããããããã¿ã€ãã®åœ¹å²ãç¹å®ããã
- JavaScript ã®ã¯ã©ã¹æ§æã«ã€ããŠèª¬æããã
- Lightning Web ã³ã³ããŒãã³ãã«ãããç¶æ¿ãšãªããžã§ã¯ããªãã©ã«è¡šèšã®åœ¹å²ã説æããã
JavaScript ãšããèšèªã説æããæ¹æ³ã¯ãããããããŸããã©ã®ãããªå®çŸ©ãéžã¶ã«ãããJavaScript ã§ãªããžã§ã¯ãã®æŠå¿µãéèŠã§ããããšã«ã¯èª°ããåæããããšã§ããããJavaScript ã®ãªããžã§ã¯ããšãã®ããã¿ã«å¯Ÿããçè§£ãæ·±ãŸãã»ã©ãå¹çç㪠JavaScript ãèšè¿°ã§ããããã«ãªããŸãã
å§ããåã«ããªããžã§ã¯ãã«ã€ããŠããã€ãã®æ³šæäºé ããããŸãã
- ãªããžã§ã¯ãã«ã¯ãApexãJavaãC# ã®éçºè
ãèãããããªã¯ã©ã¹ããããŸããã
- ã©ã®ãªããžã§ã¯ããå¥ã®ãªããžã§ã¯ãããç¶æ¿ããŸãã
- ãªããžã§ã¯ãã¯å€æŽå¯èœã§ãã
- ãªããžã§ã¯ãã¯äœææã«ç¬èªã®å¯å€ã³ã³ããã¹ããååŸããŸãã
ãªããžã§ã¯ãã®äœæ
æ§æã®ç¹ããèšãã°ãJavaScript ã§ã¯ãªããžã§ã¯ããæ°éãã®æ¹æ³ã§äœæã§ããŸããããã©ãããªããžã§ã¯ããã©ã®ãããªæ¹æ³ã§äœæããã«ãããå®éã«ã¯ Object.create() ãšããåºç€ãšãªã API ãæœè±¡åããããšã«ãªããŸããÂ
å Žåã«ãã£ãŠã¯ Object.create() ãçŽæ¥äœ¿çšããããšã劥åœãªããšããããŸãããããã§ã¯èª¬æããŸããããã®ä»£ããããªããžã§ã¯ããäœæããããäžè¬çãªæ¹æ³ãèŠãŠãããŸãã
ãªããžã§ã¯ããªãã©ã«è¡šèš
1 ã€ç®ã®ãªããžã§ã¯ãäœææ§æã¯ããªããžã§ã¯ããªãã©ã«è¡šèšãšãããã®ã§ããããã¯ããªããžã§ã¯ããäžåºŠã«ãŸãšããŠå®£èšããŠä»£å ¥ãããã·ã³ãã«ãªå®£èšåã®æ¹æ³ã§ãããªããžã§ã¯ãã¯ãã®åŸãåãã¹ããŒãã¡ã³ãã®äžéšãšããŠãã ã¡ã«ä»£å ¥ãããŸãã
const bike = {
gears: 10,
currentGear: 3,
changeGear: function(direction, changeBy) {
if (direction === 'up') {
this.currentGear += changeBy;
} else {
this.currentGear -= changeBy;
}
}
}
console.log(bike.gears); // 10
console.log(bike.currentGear); //3
bike.changeGear('up', 1);
console.log(bike.currentGear); //4ãªããžã§ã¯ããªãã©ã«è¡šèšã¯æ¬è³ªçã«å®£èšåã§ãããã®äŸã® bike ãªããžã§ã¯ãã«ã¯ãgears ããããã£ãš currentGear ããããã£ãš changeGear 颿°ãšãã 3 ã€ã®ã¡ã³ããŒããããŸãããªããžã§ã¯ããäœæãããåŸã§ãããã®ã¡ã³ããŒãåç
§ããå Žåã¯ãããã衚èšã䜿çšããŸãã
ãªãã©ã«ãªããžã§ã¯ãã¯åçºã®ãªããžã§ã¯ãã«é©ããŠããŸãã仿¹ãåãçš®å¥ã®ãªããžã§ã¯ãã 2 ã€ä»¥äžäœæããå Žåã¯ãå®çšçã§ã¯ãããŸããããã®å Žåã¯ãæ°ãããªããžã§ã¯ããäœæãããç¹°ãè¿ãå¯èœãªããžãã¯ãå¿ èŠã§ãã
ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããæ°ãããªããžã§ã¯ã
ãªããžã§ã¯ããäœæãããã 1 ã€ã®æ¹æ³ã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããããšã§ããã³ã³ã¹ãã©ã¯ã¿ãŒãšã¯ããªããžã§ã¯ããäœæããŠä»£å ¥ãããšãã«ãã®ããããã£ãèšå®ããããã®èª¬æãå«ã颿°ã§ãããã®æ¹æ³ã§ã¯ãåãããããã£ã®ãªããžã§ã¯ãã®ã€ã³ã¹ã¿ã³ã¹ã倿°äœæã§ãããšããç¹ã§ããªããžã§ã¯ããªãã©ã«ããã䟿å©ã§ãã
function Bike(gears, startGear) {
this.gears = gears;
this.currentGear = startGear;
}
Bike.prototype.changeGear = function(direction,changeBy){
if(direction === 'up') {
this.currentGear += changeBy;
} else {
this.currentGear -= changeBy;
}
}
const bike = new Bike(10, 3);
console.log(bike.gears); // 10
console.log(bike.currentGear); //3
bike.changeGear('up', 1);
console.log(bike.currentGear); //4ãã®äŸã§ Bike ã¯ããªããžã§ã¯ããå®çŸ©ããéåžžã® JavaScript 颿°ã§ããããã§ã¯ JavaScript ã®ã«ãŒã«ã«åŸã£ãŠããã®é¢æ°ãã³ã³ã¹ãã©ã¯ã¿ãŒã§ããããšãç¥ãããããã«æåã®æåã倧æåã«ããŠããŸãããã® new ããŒã¯ãŒãã¯æ¥µããŠéèŠã§ããnew ããªããã°ãthis ãã€ã³ã¿ãŒãæå³ãããªããžã§ã¯ãããã€ã³ããããäºæããªãåäœãçããŸããthis ã€ããŠã¯ãåŸã®åå
ã®ã³ã³ããã¹ãã®èª¬æã§ããäžåºŠåãäžããŸãã
changeGear 颿°ã®ä»£å
¥ã¯ãprototype ãšãããã®ã䜿çšããŠè¡ãããŸãããã®æ¹æ³ã§ã¯ã颿°ãäžåºŠå®çŸ©ããããšããã®ã³ã³ã¹ãã©ã¯ã¿ãŒã§äœæããããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã«ç¢ºå®ã«å
±æãããŸãããããã¿ã€ãã®äœ¿çšãšç¶æ¿ã«ã€ããŠã¯ããã®åå
ã®åŸåã§èª¬æããŸãã
æ§æã®ç¹ã§ã¯ããªããžã§ã¯ããªãã©ã«è¡šèšãšã³ã³ã¹ãã©ã¯ã¿ãŒã¯ããªãç°ãªããŸããã ã©ã¡ãã®å Žåããæ°ãããªããžã§ã¯ããã¡ã¢ãªã«äœæãããbike 倿°ããã®ãªããžã§ã¯ããžã®ãã€ã³ã¿ãŒã«ãªããŸããã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšãããšãåãããããã£ãšé¢æ°ãèšå®ããã Bike ãªããžã§ã¯ããããããäœæã§ããŸãã
ãªããžã§ã¯ããžã®ããããã£ãšé¢æ°ã®ä»£å ¥
äžèšã® bike ã®äŸããããªããžã§ã¯ãã«ã¯ããããã£ãšé¢æ°ãšãã 2 çš®é¡ã®ã¡ã³ããŒãããã®ã§ã¯ãªãããšæšæž¬ããæ¹ãæ£è§£ã§ããÂ
ããããã£ã«ã¯æ¬¡ã® 3 ã€ã®åºæ¬çãªåœ¢æ ããããŸãã
- ããªããã£ã
- ãªããžã§ã¯ã
- é
å
ãã®ã¢ãžã¥ãŒã«ãäœæããæç¹ã§ãJavaScript ã«ã¯ãæååãæ°å€ãBooleanãnullãundefinedãèšå·ãBIGINT ã® 7 ã€ã®ããªããã£ãåããããŸããããªããã£ãåã¯å€æŽã§ããŸããã倿°ãããªããã£ãåã®å Žåã¯ã代å
¥æã«å€ã«ãã£ãŠå€æ°ãæž¡ãããŸããã€ãŸããããªããã£ãã代å
¥ããããã³ã«ãå€ã®ã³ããŒãäœæãããæ°ãã倿°ã«ä»£å
¥ãããŸããÂ
JavaScript ã§ããªããã£ãã«è©²åœããªããã®ã¯ã»ãŒãã¹ãŠãªããžã§ã¯ãã§ãããªããžã§ã¯ããªãã©ã«è¡šèšã§ã¯ããªããžã§ã¯ãã®ããããã£ãäžæ¬åŒ§ã§å²ãŸããŸãã
é
åèªäœã JavaScript ã§ã¯ãªããžã§ã¯ããšããŠå®è£
ãããŸããé
åã¯ãArray() ã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ããŸãã¯è§æ¬åŒ§ã§å²ãŸãããªãã©ã«è¡šèšã䜿çšããŠäœæã§ããŸãã
颿°ã«ã€ããŠã¯ããã®ã¢ãžã¥ãŒã«ã«ç¬èªã®åå
ããããããããã§ã¯èª¬æããŸããããäžèšãåºã«ããäžåºŠãªããžã§ã¯ããªãã©ã«è¡šèšã䜿çšããŠããã«è€é㪠bike ãªããžã§ã¯ããå®çŸ©ããŠã¿ãŸãããã
const bike = {
frontGearIndex: 0,
rearGearIndex: 0,
transmission: {
frontGearTeeth: [30,45],
rearGearTeeth: [11,13,15,17,19,21,24,28,32,36]
},
calculateGearRatio: function() {
let front = this.transmission.frontGearTeeth[this.frontGearIndex],
rear = this.transmission.rearGearTeeth[this.rearGearIndex];
return (front / rear);
},
changeGear: function(frontOrRear, newValue) {
if (frontOrRear === 'front') {
this.frontGearIndex = newValue;
} else {
this.rearGearIndex = newValue;
}
}
};æ¬åŒ§æ§æã«ããããããã£ã®åç §
ãªããžã§ã¯ãã¡ã³ããŒã®åç §ã¯ãéåžžããã衚èšã䜿çšããŠè¡ããŸããããšãã°ãåã®äŸã§ã¯ããªããžã§ã¯ãã®ããããã£ãšé¢æ°ã次ã®ããã«åç §ããŸãã
bike.frontGearIndex bike.transmission.frontGearTeeth bike.calculateGearRatio()
ããã衚èšã§ã¯ãããããã£ã®ååã«å³å¯ãªã«ãŒã«ããããŸããããã©ã JavaScript ã§ã¯ãæ¬åŒ§è¡šèšãšããå¥ã®æ§æã䜿çšã§ããŸããæ¬åŒ§è¡šèšã§ã¯äžèšã®ã¡ã³ããŒã次ã®ããã«åç §ãããŸãã
bike["frontGearIndex"] bike["transmission"]["frontGearTeeth"] bike["calculateGearRatio"]()
æ¬åŒ§è¡šèšã®ã»ããå ¥åããæåæ°ãå€ããã®ã®ã2 ã€ã®å©ç¹ããããŸããããããã£ã颿°ã«ä»»æã®ååãä»ããããšãã§ããŸãããããŠãæååã§ããããã倿°ãä»ããŠããããã£ã颿°ã®ååãæž¡ããŠã³ãŒã«ã§ããŸãã
ã§ã¯ãchangeGear 颿°ãåèãããã®æ¹æ³ã§ã¯ã©ã®ããã«æ©èœããã®ãèŠãŠã¿ãŸããããããã§ã¯ãããã³ãã®ã¢ãšãªã¢ã®ã¢ã®äžäžã®ã·ãããå®çŸ©ãã 4 ã€ã®é¢æ°ã䜿çšããŸããchangeGear 颿°ã§ãæååãã©ã¡ãŒã¿ãŒã«åºã¥ããŠã³ãŒã«ãã颿°ã®ååãæ§ç¯ãããã®ååãã³ãŒã«ããŸãã
changeGear: function(frontOrRear, upOrDown) {
let shiftFunction = frontOrRear + upOrDown;
this[shiftFunction]();
},
frontUp: function(){
this.frontGearIndex += 1;
},
frontDown: function(){
this.frontGearIndex -= 1;
},
rearUp: function(){
this.rearGearIndex += 1;
},
rearDown: function(){
this.rearGearIndex -= 1;
}ãããã®ååã bike ãªããžã§ã¯ãã«è¿œå ãããšãã©ã®ããã«æ©èœããã®ãã確èªã§ããŸãã
console.log(bike.calculateGearRatio()); // 2.727272727
//Calls the frontUp() function
bike.changeGear("front", "Up");
console.log(bike.calculateGearRatio()); // 4.090909091
//calls the rearUp() function
bike.changeGear("rear", "Up");
console.log(bike.calculateGearRatio()); // 3.461538461ãªããžã§ã¯ãã®å€æŽå¯èœæ§
ãªããžã§ã¯ããå®çŸ©ããåçš®ã®æ§æã®ã»ããJavaScript ã®ãªããžã§ã¯ãã«ã¯ãã 1 ã€éèŠãªååããããŸãã倿Žå¯èœæ§ã§ãã
JavaScript ã®ãªããžã§ã¯ãã¯å€æŽå¯èœã§ããªããžã§ã¯ãã®åœ¢æ ãå€ããããã°å€æŽã§ããããšãæå³ããŸãã
äœæãã bike ãªããžã§ã¯ããèŠãŠã¿ãŸããããããšãã°ãæ°ããããããã£ã颿°ã远å ããããšãã§ããŸãã
bike.isTandem = true;
bike.popAWheelie = function() {
âŠ
};ãªããžã§ã¯ããæåã«å®çŸ©ãããã³ãŒãã«ã¢ã¯ã»ã¹ã§ããªããŠãããªããžã§ã¯ããã¡ã¢ãªã«å
¥ããããåŸã§ãã®åœ¢æ
ã倿Žã§ããŸããããã§éèŠãªç¹ã¯ããªããžã§ã¯ãã® 1 ã€ã®ã€ã³ã¹ã¿ã³ã¹ã®ã¿ã倿Žãããããšã§ããã§ã¯ãããäžåºŠ Bike ã³ã³ã¹ãã©ã¯ã¿ãŒãèŠãŠã¿ãŸãããã
const bike1 = new Bike(); const bike2 = new Bike(); bike1.isTandem = true; console.log(bike1.isTandem); // true console.log(bike2.isTandem); // undefined
ããã€ãã®ãªããžã§ã¯ãã§ããããã£ãŸãã¯ã¡ãœãããå ±æãããå Žåã¯ãç¶æ¿ã¢ãã«ã䜿çšããŸãã詳ããèŠãŠã¿ãŸãããã
ãªããžã§ã¯ããšç¶æ¿
JavaScript ã«ã¯åŸæ¥ã®èšèªã§å®çŸ©ãããŠãããããªã¯ã©ã¹ã¯ãããŸãããããããã¿ã€ãç¶æ¿ãšããç¶æ¿ã¢ãã«ããããŸãã
ãããã¿ã€ãã¯ãå®éã®ãšãããã 1 ã€ã®ãªããžã§ã¯ãã§ããããã¯ã¡ã¢ãªå ã«ååšããä»ã®ãªããžã§ã¯ããåããããã¿ã€ããå ±æããå Žåã«ç¶æ¿ããããããã£ã颿°ãå®çŸ©ããŸãã
JavaScript ã§ã¯åŸæ¥ããªããžã§ã¯ããåãã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ãå
±æãããšããããæ¹ã§ãåããããã¿ã€ããå
±æããŸããBike ã³ã³ã¹ãã©ã¯ã¿ãŒãæãåºããŠãã ãããchangeGear 颿°ã prototype ãšãããã®ã«ä»£å
¥ããŸãã
function Bike(gears, startGear) {
this.gears = gears;
this.currentGear = startGear;
}
Bike.prototype.changeGear = function(direction, changeBy) {
if (direction === 'up') {
this.currentGear += changeBy;
} else {
this.currentGear -= changeBy;
}
}ããããã°ãBike ããäœæãããåãªããžã§ã¯ãã changeGear 颿°ãç¶æ¿ããŸãã
ãããã¿ã€ãã«ã¯ãè€æ°ã¬ãã«ã®ç¶æ¿ãå®è£
ã§ãã ãããã¿ã€ããã§ãŒã³ãšããŠåç
§ãããŸããã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ã䜿çšãããããã¿ã€ããã§ãŒã³ã®å®è£
ã¯è€éã§ãçžåœéã®å®åã³ãŒããå¿
èŠã§ãããã®ç¹ãåœã¢ãžã¥ãŒã«ã®ç¯çãè¶
ããŠããŸããããã§ç¥ã£ãŠããã¹ãããšã¯ããããã¿ã€ããã§ãŒã³ã®è€éãã«å¯ŸåŠããããã«ãECMA ããç¶æ¿ãå®è£
ãããã端çãªæ§æãã€ãŸã class æ§æã«é¢ããæšæºãå°å
¥ããŠãããšããããšã§ãã
ã¯ã©ã¹ãš JavaScript
ãã¯ã©ã¹ããšããåèªãèªãã§å®å µæãèŠããçã®ã¯ã©ã¹ããŒã¹ã®ç¶æ¿ãäœæãããã®ãèŠãŠããã®ããªãšæã£ãæ¹ã¯ãèœèããããšã«ãªãã§ããããJavaScript ã® class ãšããããŒã¯ãŒãã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ã䜿çšããŠãããã¿ã€ãç¶æ¿ã®è€éæ§ã«å¯ŸåŠããç³è¡£æ§æã®ãããªãã®ã§ããäžèŸºã®ç³è¡£ã®äžã§ã¯ããã®å Žåããšã³ãžã³ã Object.create ã䜿çšãã(ãªããžã§ã¯ãæåãšããæå³ã§ã®) ã¯ã©ã¹ã¯ãããŸãããã¡ã¢ãªå
ã«ãããã¿ã€ããªããžã§ã¯ããããã ãã§ãå®éã¯ãããç¶æ¿å
ã«ãªããŸãã
幞ãã«ããJavaScript åºæã®äºé ãããã€ãèæ ®ããå¿ èŠã¯ãããã®ã®ãèŠãç®ã¯ Java ã C# ã®ã³ãŒãã«ãã䌌ãŠããŸãã
ããã§ã¯ JavaScript ã¯ã©ã¹ã«ã€ããŠè©³è¿°ããŸããããåŸåŠã®ããã« class æ§æã䜿çšã㊠bike ãªããžã§ã¯ããå®è£ ããããŒãžã§ã³ã確èªããŠãããšããã§ãããã
class Bike {
 constructor(gears, startGear){
  this.gears = gears;
  this.currentGear = startGear;
 }
 changeGear(direction, changeBy) {
  if (direction === 'up') {
   this.currentGear += changeBy;
  } else {
   this.currentGear -= changeBy;
  }
 }
}
const bike = new Bike(10, 5);
console.log(bike.currentGear); // 5
bike.changeGear('up', 2);
console.log(bike.currentGear); // 7ã芧ã®ãšããããã®æ§æã¯ Java ã Apex ã®ã¯ã©ã¹ãšãã䌌ãŠããŸããæç¢ºãªéãã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒé¢æ°ã«åžžã« constructor ãšããååãä»ããããŠããããšã§ããéèŠãªç¹åŸŽã¯ãObject.prototype ãçŽæ¥åç
§ããªããŠãã颿°ã屿§ãèªåçã«ãããã¿ã€ããã§ãŒã³ã«å±ããããšã§ãããã®ãããè€æ°ã¬ãã«ã®ãããã¿ã€ãç¶æ¿ãç°¡åã«äœæã§ããŸãã
Lightning Web ã³ã³ããŒãã³ããšãªããžã§ã¯ã
ãããŸã§ã«èª¬æããæ°çš®ã®æ§æããããã¿ã€ããã§ãŒã³ãªã©ããã®åå ã®å 容ã®ããã€ã㯠Lightning Web ã³ã³ããŒãã³ãã®éçºã«é¢é£ããŠããŸãã
ã¯ã©ã¹ãš Lightning Web ã³ã³ããŒãã³ã
Lightning Web ã³ã³ããŒãã³ãã¯ãJavaScript ã®å€æ°ã®ææ°æ©èœã掻çšããŠããããã®ä»£è¡šäŸã class æ§æã®äœ¿çšã§ããã³ã³ããŒãã³ãã¯éåžžãLightningElement ãšããå¥ã®ã¯ã©ã¹ãæ¡åŒµãã JavaScript ã¯ã©ã¹ã«ãã£ãŠå®çŸ©ãããŸããæ¬¡ã®ããã«ãªããŸãã
import { LightningElement } from lwc;
export default class MyComponent extends LightningElement {
myProperty;
myFunction() {
console.log(this.myProperty);
}
} Lightning Web ã³ã³ããŒãã³ãã®æ©èœã¯ãJavaScript ã¯ã©ã¹ã§å®çŸ©ãããŸãããã®äŸã§ã¯ãã¢ãžã¥ãŒã« (import ãš export) ã«é¢ããŠãŸã 説æããŠããªãäžéšã®æ§æã䜿çšããŠããŸãã
ãªããžã§ã¯ããªãã©ã«
ãã®ã¢ãžã¥ãŒã«ã®ããã€ãã®äŸã§ã¯ããªããžã§ã¯ããã©ã®ããã«æ©èœããããåŠç¿ããç®çã§ããªããžã§ã¯ããªãã©ã«å ã§é¢æ°ã宣èšããŠããŸãããã®ããæ¹ã¯ãææ°ã® JavaScript ã§æšå¥šãããå®è·µæ³ã§ã¯ãããŸããããªããžã§ã¯ããªãã©ã«ã¯ãJavaScript ããã°ã©ã ã®æ©èœéšåéã§ããŒã¿ãæž¡ãã¢ãããã¯ããŒã¿æ§é ãäœæããåªããæ¹æ³ã§ããããªããžã§ã¯ããªãã©ã«ã§é¢æ°ãå®çŸ©ããããšã¯åé¿ããŸãã
ãªãœãŒã¹
- JavaScript ã® Object
- ãªããžã§ã¯ãã®å©çš
- Trailhead: Lightning Web ã³ã³ããŒãã³ãã䜿çšããç远跡ã¢ããªã±ãŒã·ã§ã³ã®äœæ
- Lightning Web Components Developer Guide (Lightning Web ã³ã³ããŒãã³ãéçºè ã¬ã€ã): Define a Component (ã³ã³ããŒãã³ãã®å®çŸ©)
