intinya : - arrow function tdk memakai konsep this dan variabelny akan di telusuri lgi di lokal parent trdkt - declaration function memakai konsep this tpi bila variabelny yg dicri tdk ad dlm localnya maka lngsng di telesuri di window - expression function memakai konsep this tpi bila variabel yg dicri tdk dlm local maka, ditelusuri lgi ke lokal parent trdkt
Materi brikutny asynchronous pada javascript pak dika 🙏 (callback, promise, async await).. Btw, trimakasih banyak atas tutorialny, sangat brmanfaat.. saya cman bisa bls dengan like, share dan gk skip iklan 😀
saya tahunya JS ini dulu cuma dipakai sebagai pemanis di halaman web, tp sekarang sudah jauh berkembang jadi main programming language untuk web. harus banyak belajar lagi, terutama konsep dasar dan fundamental JS. karena selama ini hanya tahu kulitnya saja, ternyata di dalamnya sangat rumit dan menantang, terima kasih Pak Sandhika atas tutorialnya 🙏
Setelah nonton video mengenai konsep this pada arrowfunction selama 3 hari berturut-turut, akhirnya paham juga mengenai konsep this pada arrow function. Benar-benar memusingkan konsep this ini pak hahaha. Terima kasih pak dhika atas ilmunya 🙏🙏. Otw lanjut marathon seri javascript lanjutan ini
Untuk callback function yang pertama pada setTimeout itu anonymous function, yang mana anonymous function itu tidak terikat pada specific object. Sehingga cara lain untuk mensolve "this" pada anonymous function callback pada setTimeout yang merefer to global/window bisa dengan bind(), apply(), call(). CMIIW. Terimakasih untuk videonya pak, sangat membantu. 😁
buat yang masih bingung tentang konsep this di arrow function pada method function reguler di execution context local pada creation phase, this didefinisikan sebagai object pemilik method. nah kalau arrow function, di execution context pada saat fase creation this ini tidak didefinisikan. berarti sampai di fase execution di arrow function this tidak didefinisikan dan tidak bisa didefinisikan manual. maka dari itu, arrow function akan keluar dari localnya dan mencari definisi this sampai ketemu this ini apa. makanya this di arrow function itu kadang menunjuk ke window kadang menunjuk ke scope diluar dari local arrow function tersebut. saya juga baru dapat pencerahan setelah berkutat dengan this hampir satu malaman
@@akbarramadhan2954 tergantung siapa yang manggil function itu. klo arrow functionnya dipanggil di dalam function deklrasi yang merupakan suatu method dari suatu object, this sama padanya sama dengan object tersebut, klo dia function global, this menjadi object global atau window
@@vebe3381 hahaha yg gw tangkep arrow function ngga ada konsep this, kalo gunain this didalem scope arrow akan mengacu keluar scope arrow function itu. kalo function biasa dia ada konsep this, kalo gunain this didalem scope function biasa itu mengacu ke function itu.
@@rizkikusrana8328 yang gua tangkep beda lagi wkwkw, jika arrow function gunain this di dalem scope constructor, itu bisa, tp kalo di luar scope constructor gabisa, karna constructor ada thisnya,]. ya kalo konsep function biasa kita sama, apa pemahaman gua masih salah bang?
yg gw tangkep constructor dan object function declaration pnya konsep this, jdi jika ke-2 ddlm trdpt METHOD yg pki function arrow dan ddlm ad this, maka method trsebut akn keluar dan menuju ke scope OBJECT-nya dan mngmbil nilai this@@vebe3381
Teman" koreksi ya kalau salah ini menurut pendapat saya, penyebab setInterval itu merujuk ke object window karena itu perilaku this dari function declaration jika kalian masih ingat pada video dasar pemrograman javascript nah dia akan mengacu pada objek window tidak ke objek Mahasiswa nah disinilah kegunaan arrow function karena dia tidak memiliki konsep this maka dia hanya mencari apakah this.umur ada ke lexical scope sampe global. Itu saja teman" jika ada salahnya silakan dikoreksi terima yg benar nya saja karena ini berdasarkan pendapat saya😊
Maaf pak. menurut saya pernyataan pak sandhika soal "arrow function gk punya konsep this" justru salah, karna arrow function justru yang punya konsep this daripada function biasa/function declaration
@@sandhikagalihWPU lebih ke sudut pandang cara penyampaian aja si pak menurut saya, karna yg saya tau pada bahasa pemrograman umumnya this itu merujuk parent scope, jdi beda sudut pandang aja
Pak, menit 20.35 contohnya var temp bukankah seharusnya let temp; temp = satu; // var temp == 'size' satu = dua; // var satu jadi 'caption' dua = temp; // var dua == temp || 'size'
Mau nanya kak, untuk animasi yg kotak membesar kemudian berubah warna jadi hitam, dan sebaliknya.. Apakah untuk merubah urutan animasi, best practicenya adalah dengan menggunakan javascript seperti yg divideo ? atau bisa menggunakan css saja ya?
Makasih info ny pak, saya nyaris menggunakan Arrow Function selamanya :'D (maklum sebelumnya gak belajar, langsung main loncat) Ditunggu materi asyc JS (callback, promise, async await) nya ya pak....
@@hubla8381 yg saya tangkap this pada arrow function merujuk kepada window,sedangkan this pada constructor function merujuk kepada objek nya,bukankah begitu?
ok setelah setahun balik lagi baru paham ternyata di set interval make arrow function itu kena hoisting jadi dengan make this dia baru bisa kenak ke object Mahasiswnya GG
Mau nanya guys, apa ya beda nya function expression dengan Method, soal nya rada mirip-mirip.. sama-sama bisa dipakai di dalam sebuah object, lalu kedua nya di simpan ke variable juga.. untuk yang mau bantu jawab terima kasih...
// Function statement/declaration, harus diberi nama function f1() {} // Function expression, tidak harus diberi nama // Bisa digunakan sebagai nilai dari variable atau property, argument, dll // Tanda kurung supaya menjadi expression *(function () {});* // Tanda kurung supaya menjadi object literal (bukan code block) ({ // Method // Function expression sebagai nilai dari property 'f2' *f2: function() {}* });
@@pipitgusmayanti8342 hoo begitu ya, seperti nya kalau method biasa nya pakai ':' ya karna brda dalam object.. sedangkan expression kalau jdi nilai sebuah variable menggunakan '='
kenapa this pada method setInterval memiliki nilai window object? karena method setInterval merupakan method dari window object ya pak? www.w3schools.com/jsref/obj_window.asp
@@muhamadridwan8242 sama masih agak bingung ,udah nyoba pk buat method dari objek mahasiswa,kl pk arrow function di method sayHello this nya jadi ke window(karena gk ada konsep this),kl set interval karena itu method punya window jadi this nya mengacu ke window ,cm bingungnya kan arrow function gk ada konsep this, kok this nya jadi mengacu ke objek mahasiswa?
Saya masih belum mengerti tentang this di arrow function ini. /*************************** const Mahasiswa = function () { this.nama = 'Yukito'; this.umur = 18; this.sayHello = function () { console.log(`Halo, nama saya ${this.nama}, dan saya ${this.umur} tahun`); } setInterval(function () { console.log(++this.umur); }, 500); } const yukito = new Mahasiswa(); ***********************************/ /*************************** const Mahasiswa = function () { this.nama = 'Yukito'; this.umur = 18; this.sayHello = function () { console.log(`Halo, nama saya ${this.nama}, dan saya ${this.umur} tahun`); } setInterval( () => { console.log(++this.umur); }, 500); } const yukito = new Mahasiswa(); ***********************************/ Kenapa arrow function bisa menemukan variable this, sedangkan fungsi biasa tidak. Bukankan yang make arrow juga di hoisting ke atas sama kaya fungsi biasa? tapi kenapa yang arrow bisa menganggap this sebagai objek saat init ya? Yang saya pikirkan seperti ini : Function Declaration -> 1.Fungsi di hoisting 2. Dia mencari this didalam dirinya, karena ini function biasa (punya konsep this), maka dia mencarinya di objek saat ini.Dan di objek saat ini, dia belum menemukannya karena fungsi di hoisting lebih dulu daripada variable. 3. Karena tidak ditemukan, maka dia mencari keluar blok kurung kurawal, hingga sampai ke objek window. Arrow Function -> 1.Fungsi di hoisting 2. Dia mencari this didalam dirinya, karena ini arrow function (tidak punya konsep this), maka ia akan mencarinya di luar scope nya, yaitu diluar kurung blok kurawal fungsi tersebut begitu terus sampai ditemukan variable this (dalam kasus yang Function Declaration ia mencari sampai pada objek Window, hingga ditemukan variable this). Yang saya bingungkan kenapa arrow function sudah bisa menemukan this? Padahal arrow function tersebut juga sama sama di hoisting sebelum variable this tersebut. ( Bukankan kasusnya sama kaya Function Declaration). Bagi yang mau jawab saya ucapkan terimakasih, karena saya penasaran sama kasus ini.
this pada arrow function = menemukan lexical scope ( di luar function arrownya ) this pada function biasa = global scope ( window ) karena function declaration = di hoisting karena function expression = tidak di hoisting karena disimpan di dalam variable disaat this dipanggil pada function delcaration = menemukan window karena di hoisting kesimpulan : this = window ( karena arrow function tidak ada this maka tidak ada window dan secara default mencari lebih kecil dari windownya ) jadi kalau memggunakan arrow function di function declaration = tidak di hoisting, itu fungsinya arrow function kenapa arrow function bisa menemukan variable this? karena arrow function tidak ada konsep this maka dia akan mencari this ( object parentnya = mahasiswa, dan isi di dalamnya jika ditulisnya { umur } secara spesifik ) jadi this pada arrow function tidak menemukan window melainkan menemukan object parentnya yang di dalamnya ada arrow function this