objek ini dalam JS
阿神
阿神 2017-05-19 10:26:19
0
4
606

var str="hello";
var obj={
str:"world",
saysstr:this.str
};
alert(obj.saystr); //Hasilnya ialah hello

Sila beritahu saya mengapa hasilnya adalah "hello" dan bukannya "dunia"

阿神
阿神

闭关修行中......

membalas semua(4)
習慣沉默

Artikel ini boleh menyelesaikan kebanyakan masalah ini.

漂亮男人

Apa yang ditunjuk oleh ini ditentukan oleh fungsi terdekat yang mengandunginya;
Jika fungsi tidak ditemui, maka ini ialah objek global.
Dalam soalan anda, ia adalah yang terakhir. this指向什么,由包含它的最近的一个function决定的;
如果没找到function,那么this就是全局对象。
你的题目中,就是后者。

稍微修改一下代码:

var str="hello";
var obj={
str:"world",
saystr: function() {
     alert(this.str)
}
};
obj.saystr();

就是第一种情况了。

总结一下:确定this通常分两步走:

  1. 先找到包含this的最近的一个function

  2. 然后看这个function

    Ubah suai sedikit kod:
  3. rrreee
Ini adalah situasi pertama. 🎜 🎜Untuk meringkaskan: Menentukan ini biasanya melibatkan dua langkah: 🎜
  1. 🎜Mula-mula cari fungsi terdekat yang mengandungi ini;🎜🎜
  2. 🎜Kemudian lihat bagaimana fungsi ini dipanggil. Lihat di sini untuk butiran. 🎜🎜 🎜
滿天的星座
  alert(obj.saystr);
这句话实际等同于:
 alert(this.str);
伊谢尔伦

Tukar soalan kepada yang berikut untuk pemahaman yang lebih baik:

var str = "hello";
var obj = {};
obj.str = "world";
obj.saystr = this.str;

Jadi, anda boleh melihat sekilas pandang bahawa ini menghala ke objek global tetingkap, jadi hasil obj.saystr ialah hello

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!