Object Oriented JavaScript
Sudah Javascript, Object Oriented lagi ? Heu..heu…, OOP nya aja masih Oge-oge Pusing, xi.xi.xi. :D. Bayangkan, dalam Javascript, Array adalah Object, Function adalah Object, Object adalah Object, so, Object dalam javascript itu apa ? Object dalam javascript adalah koleksi pasangan nama-nilai. Nama-nama berupa string, dan value bisa berupa Strings, numbers, booleans, dan objects (haiyah, tambah puyeng dah 😛 ). Ok, Lanjutttt…
Jika value adalah function, kita bisa bilang bahwa itu adalah method. Ketika sebuah metode objek dipanggil, variabel ini disetel ke objek. method dapat memanggil instance variable dengan keyword this.
contoh :
function setJs(str) { this.MemberStr = str; }
Maka, Jika kita instansiasi menjadi object :
var objSetStr = new setJs('this is a string');
maka, objSetStr.MemberStr berisi value ‘this is a string’
Penggunaan keyword this menunjukkan bahwa atribut itu bermodifier public , bagaimana dengan atribut bermodifier private ?
Cara pembuatan private modifier adalah dengan var , contoh :
function HaiFromJs(str){ //memberattr adalah atribut bermodifier private //ia tidak bisa dipanggil dari luar function secara langsung. var memberattr = str ; this.hai = function(){ alert ( "Hai " +memberattr+"\n apa kabar ? "); } } //buat object var haiObj = new HaiFromJs( "Samsonasik" ); haiObj.hai();
sumber :
http://www.crockford.com/javascript/private.html
http://t1.gstatic.com/images?q=tbn:RhNF4WHmbEsPXM::&t=1&usg=__3rGjJy1YhTIJOBhFLOXM7dzC8iM=
http://en.wikipedia.org/wiki/Javascript
http://en.wikipedia.org/wiki/Class_%28computer_science%29
John Resig : Secrets Of the Javascript Ninja.
PHP : avoid hard-coding with Reflection Class
Reflection, dalam ilmu komputer berarti proses di mana program komputer dapat mengamati dan memodifikasi strukturnya sendiri. Proses ini memonitor eksekusi program pada saat runtime. Manfaat reflection adalah, kita bisa mengontrol eksekusi program berdasarkan request yang diminta dalam situasi yang dinamis. Anggaplah kita mempunyai dua kelas, kelas X, dan kelas Y yang mengoperasikan method yang sama dengan hal yang berbeda ketika situasinya berbeda. Tanpa reflection, kita diharuskan membuat hard-code, kapan method dari class X dipakai, dan kapan method dari class Y dipakai.
Contoh kode program dalam PHP :
<?php //get request class... $getClass = (empty($_GET['class'])) ? "X" : $_GET['class']; if ($getClass!="X" && $getClass!="Y") $getClass = "X"; class X { function doaThing() { echo "do a thing of class X"; } } class Y { function doaThing() { echo "do a thing of class Y"; } } //instantiate Reflection class, pass the class Name $reflectObj = new ReflectionClass($getClass); //get methodName ( same as class, can dinamic too ) $method = $reflectObj->getMethod("doaThing"); //exec ... $method->invoke($reflectObj->newInstance());
Untuk PHP 5.3, bisa saja kita panggil class dan method tersebut tanpa reflection, hanya saja, penerapan reflection tentu saja tidak terbatas pada hal-hal di atas. Masih banyak lagi penggunaan-penggunaan lain yang tentu saja ini akan membantu dalam eksekusi program yang terotomatisasi. List method dari class ini dapat di lihat di sini.
Sumber :
http://en.wikipedia.org/wiki/Reflection_%28computer_science%29
http://php.net/manual/en/book.reflection.php
leave a comment