Youngliving
Jetorbit Web Hosting

Object Oriented Programing Javascript

+++++ Prototype Di Javascript +++

prototype ini dimiliki oleh struktur data atau tipe data seperti yang telah kita gunakan dalam sebuah array atau object
Anda bisa memanggil prototypenya dengan memanggil fungsi Array.prototype

apabilamembuatobjectarrayfungsidalamprototypeseprtidibawahIni

Array.prototype.hello = () => {
console.log ('hello World');


}
() => {
console.log ('hello World');


}
const kelas 1 = [ 1,2,3]
const kelas 2 = [ 4,5,6]


kelas1.hello()

maka kedua variabel yang digunakan diatas dapat mengakses methode utama atau di parentnya dan setiap turunannya dapat dipanggil berbeda jika tidak menggunakan prototype

++++ Membuat Object Dengan Factory Function +++

// const hex = (r,g,b) => {
// return '#' + ((1 << 24) + (r << 16) + (g << 8)+ b).toString(16).slice(1); // }; // const (r,g,b) => {
// return 'rgb(${r},${g}, ${b})';
// };
function convertColor (r,g,b){
constcolor= {};
color.r=r;
color.g=g;
color.b=b;


color.rgb=function (){
const {r,g,b} =this;
return'rgb(${r},${g}, ${b})';
};
color.hex=function(){
const {r,g,b} =this;
return'#'+ ((1<<24) + (r<<16) + (g<<8)+b).toString(16).slice(1);
};




returncolor;
}

++++ Membuat Object Dengan Class ++++

cunstructor adalah fungsi yang pertama kali dijalankan saat anda membuat intsance object, pada saat kita membuat keyword new.

class color {
construtor (r,g,b, name){
this.r=r;
this.g=g;
this.b=b;
this.name=name;

}
colorName(){
console.log ('The color names is'+this.name);

}
rgb() {

const {r,g,b}=this;
return'rgb(${r},${g},${b})';

}

rgba (a=1.0){
const {r,g,b}=this;
return'rgba(${r},${g},${b},${a})';

}
hex(){
const {r,g,b}=this;
return'#'+ ((1<<24) + (r<<16) + (g<<8)+b).toString(16).slice(1);
}
}

new Color() // harus memberikan nilai pada object color kalau tidak bakalan eror

Membuatmethodeberartimembuatfungsididalamobject

jika membuat methode dengan koma, koma tanpa harus membuatnya lagi atau redudansi atau pengulangan dengan cara sebagai berikut

innerRGB(){
const {r, g, b} =this;
return'rgb(${r}, ${g}, ${b})';

}

anda masukkan ke dalam class fungsi tersebut dan bisa dinamakan method

class color {
construtor (r,g,b, name){
this.r=r;
this.g=g;
this.b=b;
this.name=name;
this.calcHSL ();

}
innerRGB(){
const {r, g, b} =this;
return'rgb(${r}, ${g}, ${b})';

}
colorName(){
console.log ('The color names is'+this.name);

}
rgb() {
return'rgb(${this.innerRGB()})';

}

rgba (a=1.0){
return'rgba(${this.innerRGB()}, ${a})';

}
hex(){
const {r,g,b}=this;
return'#'+ ((1<<24) + (r<<16) + (g<<8)+b).toString(16).slice(1);
}
hsl() {
const { h, s, l } =this;
return`hsl(${h}, ${s}%, ${l}%)`;
}

fulllySaturated() {
const { h, l } =this;
return`hsl(${h},100%, ${l}%)`;
}

opposite() {
const { h, s, l } =this;
constnewHue= (h+180) %360;
return`hsl(${newHue},${s}%, ${l}%)`;
}
calcHSL() {
let { r, g, b } =this;
// Make r, g, and b fractions of 1
r/=255;
g/=255;
b/=255;
Findgreatestandsmallestchannelvalues
letcmin=Math.min(r, g, b),
cmax=Math.max(r, g, b),
delta=cmax-cmin,
h=0,
s=0,
l=0;
if (delta==0) h=0;
elseif (cmax==r)
// Red is max
h= ((g-b) /delta) %6;
elseif (cmax==g)
// Green is max
h= (b-r) /delta+2;
// Blue is max
elseh= (r-g) /delta+4;

h=Math.round(h*60);

// Make negative hues positive behind 360°
if (h<0) h+=360;
// Calculate lightness
l= (cmax+cmin) /2;

// Calculate saturation
s=delta==0?0:delta/ (1-Math.abs(2*l-1));

// Multiply l and s by 100
s=+(s*100).toFixed(1);
l=+(l*100).toFixed(1);
this.h=h;
this.s=s;
this.l=l;
}
}

constskyColor=newColor(185, 243, 252, 'Sky');
}

Membuatsebuahmetodedalamclassitusendiridanyangmenjadisalahsatumetodenyaakanmenjalankanconstructortanpamenjalankanyanglainnya. Melakukanngeneratergbyangakandilakukanpadaformathsl

+++ OOP Extend dan Fungsi Super +++

Object ini bisa berbentuk visibel atau tidak baik itu kucing, anjing, dengan bentuk dan ukuran yang semisal kita akan membuat class kucing dengan constructer nama dan umur

classPeliharaan {
// parent class/object
constructor(name, age) {
console.log('parent executed');
this.name=name;
this.age=age;
}
makan() {
return`${this.name} lagi makan`;
}
}

constkucing=newKucing ('mbul',4)
kucing.makan()

classKucingextendsPeliharaan {
// child class/object
constructor(name, age, lives) {
console.log('child executed');
super(name, age);
this.lives=lives;
}
meong() {
return'Meeonng!';
}
}

classAnjingextendsPeliharaan {
// child class/object
gongong() {
return'guk guk!!';
}
}

extend digunakan untuk memanggil method yang digunakan oleh parentnya sedangkan untuk super untuk memanggil parameter yang ada di parent untuk digunakan di childnya.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

DomaiNesia