Monday, June 11, 2012

this

Operator this digunakan untuk merefensi kepada objek yang bersesuaian.

Sintaks:

this this.property this.method

Operator this adalah operator standard JavaScript 1.0+, JScript 1.0+, ECMAScript 1.0+ dan di dukung Google Chrome Beta+, Firefox 1.0 (Gecko 1.7)+, Internet Explorer 3+, Netscape Navigator 2.0+, Opera 3.0+, Safari 1.0+.

Di JavaScript this mengacu kepada 'pemilik' dari fungsi atau script di mana didalamnya berisi this ketika dieksekusi.

Jika this digambarkan di dalam function definition, this itu merefensi kepada objek global, biasanya objek window. Sebagai contoh:

function foo() { alert(this); // mengembalikan objek window } foo();

Ketika anda, misalkan ingin menerapkan style.backgroundColor bagi objek window, kesalahan didapatkan, karena objek window tidak memiliki properti style.backgroundColor. Misalnya:

function foo() { this.style.backgroundColor = "red"; // tidak dapat menerapkan backgroundColor untuk undefined } foo();

Tetapi jika anda ingin menggunakan, mungkin metode alert() yang memang objek window miliki, kode anda akan berjalan. Sebagai contoh:

function foo() { this.alert("Hi."); // mengembalikan "Hi." } foo();

Jika berkaitan Register Event Handler Via Traditional Model, this akan merefensi kepada elemen HTML yang menggunakan fungsi yang ada. Sebagai contoh:

<P ID="myp">Click me.</P> <SCRIPT TYPE="text/javascript"> function foo() { this.style.backgroundColor = "red"; alert(this); // merefensi kepada elemen P } var pObj = document.getElementById("myp"); pObj.onclick = foo; </SCRIPT>

Atau seperti ini:

<P ID="myp">Click me.</P> <SCRIPT TYPE="text/javascript"> var pObj = document.getElementById("myp"); pObj.onclick = function() { this.style.backgroundColor = "red"; alert(this); // merefensi kepada elemen P }; </SCRIPT>

Atau seperti ini:

<P ONCLICK="this.style.backgroundColor = 'red';">Click me.</P>

Tetapi tidak ketika nilai dari atribut event adalah function call, maka this merefensi kepada objek window:

<SCRIPT TYPE="text/javascript"> function foo() { alert(this); // merefensi kepada objek window } </SCRIPT> <P ONCLICK="foo()">Click me.</P>