Rumah > hujung hadapan web > tutorial js > Mekanisme ini dalam pengetahuan JavaScript_Basic

Mekanisme ini dalam pengetahuan JavaScript_Basic

WBOY
Lepaskan: 2016-05-16 15:16:51
asal
1243 orang telah melayarinya

JavaScript mempunyai mekanisme ini sendiri Dalam situasi yang berbeza, penunjuk ini berbeza.

Skop global

console.log(this); //全局变量
Salin selepas log masuk

Skop global menggunakan ini untuk menunjuk kepada pembolehubah global, iaitu tetingkap dalam persekitaran penyemak imbas.

Nota: Mod ketat ECMAScript5 tidak mempunyai pembolehubah global, dan ini tidak ditentukan.

Fungsi panggilan

function foo() {
  console.log(this);
}

foo(); //全局变量

Salin selepas log masuk

Panggilan dalam fungsi ini juga menunjuk kepada pembolehubah global.

Nota: Mod ketat ECMAScript5 tidak mempunyai pembolehubah global, dan ini tidak ditentukan.

Panggilan kaedah objek

var test = {
  foo: function () {
    console.log(this);
  }
}

test.foo(); //test对象

Salin selepas log masuk

Dalam panggilan kaedah objek, ini menunjukkan kepada pemanggil.

var test = {
  foo: function () {
    console.log(this);
  }
}

var test2 = test.foo;
test2(); //全局变量

Salin selepas log masuk

Walau bagaimanapun, disebabkan ciri pengikatan lewat ini, dalam contoh di atas, ini akan menunjukkan kepada pembolehubah global, yang bersamaan dengan memanggil fungsi secara langsung.

Ini sangat penting Segmen kod yang sama hanya boleh ditentukan apabila dijalankan

Pembina

function Foo() {
  console.log(this);
}

new Foo(); //新创建的对象
console.log(foo); 

Salin selepas log masuk

Di dalam pembina, ini menunjukkan kepada objek yang baru dibuat.

Tetapkan ini secara eksplisit

function foo(a, b) {
  console.log(this);
}

var bar = {};

foo.apply(bar, [1, 2]); //bar
foo.call(1, 2); //Number对象

Salin selepas log masuk

Apabila menggunakan kaedah panggilan atau gunakan Function.prototype, bahagian dalam fungsi ini akan ditetapkan sebagai parameter pertama yang diluluskan.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan