Rumah > hujung hadapan web > tutorial js > Bagaimanakah Kata Kunci `ini` Berkelakuan dalam Literal Objek JavaScript?

Bagaimanakah Kata Kunci `ini` Berkelakuan dalam Literal Objek JavaScript?

Patricia Arquette
Lepaskan: 2024-12-13 21:48:21
asal
629 orang telah melayarinya

How Does the `this` Keyword Behave in JavaScript Object Literals?

Kelakuan Kata Kunci "ini" dalam Literal Objek Javascript

Dalam literal objek, kata kunci "ini" berfungsi sebagai pemegang tempat untuk objek sendiri. Walau bagaimanapun, tingkah lakunya boleh berbeza-beza bergantung pada keadaan di mana ia dipanggil.

Dalam kod anda:

var MyDate = function(date) {
    this.date = date;
};

var obj1 = {
    foo: new Date(),
    bar: new MyDate(this.foo)  //  this.foo is undefined
};

var obj2 = {};
obj2.foo = new Date();
obj2.bar = new MyDate(this.foo);  //  this.foo is undefined

var obj3 = {
    foo: new Date(),
    bar: new MyDate(obj3.foo)
};

var obj4 = {};
obj4.foo = new Date();
obj4.bar = new MyDate(obj4.foo);
Salin selepas log masuk

Memahami Pengikatan "ini"

Kata kunci "ini" Javascript mempamerkan pengikatan lewat, bermakna nilainya tidak ditentukan sehingga fungsi itu digunakan. Dalam kes anda:

Senario 1 dan 2:

  • Dalam "obj1" dan "obj2," kata kunci "ini" dalam "MyDate baharu" fungsi merujuk kepada objek global (iaitu, "tetingkap") kerana ia tidak digunakan sebagai kaedah objek tertentu. Memandangkan tiada sifat bernama "foo" pada objek global, ia menghasilkan ralat yang tidak ditentukan.

Senario 3 dan 4:

  • Dalam "obj3" dan "obj4," kata kunci "ini" berjaya merujuk kepada objek masing-masing kerana fungsi "MyDate baharu" dipanggil sebagai kaedah objek ini. Oleh itu, "this.foo" dengan betul mengakses sifat "foo" dalam setiap objek.

Kesimpulan

Gelagat kata kunci "ini" dalam objek literal bergantung pada konteks di mana fungsi itu digunakan. Jika tidak terikat secara eksplisit pada objek, ia lalai kepada objek global. Walau bagaimanapun, apabila dipanggil sebagai kaedah objek, ia merujuk kepada objek khusus itu, memastikan akses yang betul kepada sifat dan kaedah objek.

Atas ialah kandungan terperinci Bagaimanakah Kata Kunci `ini` Berkelakuan dalam Literal Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan