js指向问题
this的指向:
json和原型链是一样的。
看了很多文章都说的比较复杂。
this指向调用对象。
直接贴代码吧。
var x = { test:function(){ console.log(this); }; }; x.test()//x{...}; var n = x.test(); n();//Window
第一次是x调用,所以console.log的是x,第二次相当于是window.n(),也就是window调用,所以显示的是window。
可能我理解得比较浅,我觉得this就是包含‘this’得那个函数的'.'前面的对象。至于apply和call会有些变化,我下面粗略说下。
apply和call的区别就在于,apply是(对象,[参数集合]),call是(对象,参数,参数,参数,参数,参数...),其他的我暂时还不清楚。先贴个代码。
function ed(){ this.age = ed; }; function ing(){ this.age = 2; this.sex = 0; this.showAge = function(){ console.log(this.age); console.log(this.sex); } }; var edObj = new ed(); var ingObj = new ing(); ingObj.showAge.apply(edObj);//2,Undefined
这说白了,就好比一个程序员换了台电脑进行开发,除了处理数据的逻辑在自己的脑子里,其他的环境变量都得用人家的。apply前面的方法是这个程序员的思维,()里面的方法就是新电脑。至于后面的参数...就是方法所需要的参数,这个可以自己随便传。
2.箭头函数指向: 箭头函数名字都没有一个,根本没法被喊着名字去调用,所以this永久指向Window.
3.变量指向:这个我觉得涉及到内存指针的问题。但是很好理解,就是常量占内存,变量往上凑。好比2+个小孩玩游戏一样,只要你别换地也别去和其他人玩,你的就是我的,我的也是你的。这个内存就好比小孩游戏的场地,小孩拥有的玩具就是他们的属性(这些小孩都比较大方)。
先举个三个例子:
var xArr = []; var xJson = {}; (()=>{ let yArr = xArr, yJson = xJson; yArr.push(1); yJson.age = 1; })();//这里说明即便是块级变量也是可以一起参与玩耍的,屋里玩耍的孩子玩具一样可以被其他小孩在屋外展示。 console.log(xArr);//[1]; console.log(xJson);//{age: 1}
因为Y一直没有去找其他人玩(怎么找别人玩看例子3),所以y的玩具就是x的玩具。
var x = 0, a = 2. b = 3, y = x; console.log(y);//0 y = a+b; console.log(x);//0 console.log(y);//5
因为Y换了个地方玩(自己开了一个内存去指向),所以x拿不到Y的玩具。
var x = {}, a = {}, y = x, z = y, y = a; y.age = 1; console.log(x);//{} console.log(y);//{age:1} console.log(z);//{} console.log(a);//{age:1} z.age = 2; console.log(x);//{age:2}
这可能就是一个从此相逢是路人的故事...
1.this的指向:
json和原型链是一样的。
看了很多文章都说的比较复杂。
this指向调用对象。
直接贴代码吧。
var x = { test:function(){ console.log(this); }; }; x.test()//x{...}; var n = x.test(); n();//Window
第一次是x调用,所以console.log的是x,第二次相当于是window.n(),也就是window调用,所以显示的是window。
可能我理解得比较浅,我觉得this就是包含‘this’得那个函数的'.'前面的对象。至于apply和call会有些变化,我下面粗略说下。
apply和call的区别就在于,apply是(对象,[参数集合]),call是(对象,参数,参数,参数,参数,参数...),其他的我暂时还不清楚。先贴个代码。
function ed(){ this.age = ed; }; function ing(){ this.age = 2; this.sex = 0; this.showAge = function(){ console.log(this.age); console.log(this.sex); } }; var edObj = new ed(); var ingObj = new ing(); ingObj.showAge.apply(edObj);//2,Undefined
这说白了,就好比一个程序员换了台电脑进行开发,除了处理数据的逻辑在自己的脑子里,其他的环境变量都得用人家的。apply前面的方法是这个程序员的思维,()里面的方法就是新电脑。至于后面的参数...就是方法所需要的参数,这个可以自己随便传。
2.箭头函数指向: 箭头函数名字都没有一个,根本没法被喊着名字去调用,所以this永久指向Window.
3.变量指向:这个我觉得涉及到内存指针的问题。但是很好理解,就是常量占内存,变量往上凑。好比2+个小孩玩游戏一样,只要你别换地也别去和其他人玩,你的就是我的,我的也是你的。这个内存就好比小孩游戏的场地,小孩拥有的玩具就是他们的属性(这些小孩都比较大方)。
先举个三个例子:
var xArr = []; var xJson = {}; (()=>{ let yArr = xArr, yJson = xJson; yArr.push(1); yJson.age = 1; })();//这里说明即便是块级变量也是可以一起参与玩耍的,屋里玩耍的孩子玩具一样可以被其他小孩在屋外展示。 console.log(xArr);//[1]; console.log(xJson);//{age: 1}
因为Y一直没有去找其他人玩(怎么找别人玩看例子3),所以y的玩具就是x的玩具。
var x = 0, a = 2. b = 3, y = x; console.log(y);//0 y = a+b; console.log(x);//0 console.log(y);//5
因为Y换了个地方玩(自己开了一个内存去指向),所以x拿不到Y的玩具。
var x = {}, a = {}, y = x, z = y, y = a; y.age = 1; console.log(x);//{} console.log(y);//{age:1} console.log(z);//{} console.log(a);//{age:1} z.age = 2; console.log(x);//{age:2}
相关推荐:
Atas ialah kandungan terperinci js指向问题 . Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Untuk menyelesaikan masalah yang jQuery.val() tidak boleh digunakan, contoh kod khusus diperlukan Untuk pembangun bahagian hadapan, menggunakan jQuery ialah salah satu operasi biasa. Antaranya, menggunakan kaedah .val() untuk mendapatkan atau menetapkan nilai elemen borang adalah operasi yang sangat biasa. Walau bagaimanapun, dalam beberapa kes tertentu, masalah tidak dapat menggunakan kaedah .val() mungkin timbul. Artikel ini akan memperkenalkan beberapa situasi dan penyelesaian biasa, serta memberikan contoh kod khusus. Penerangan Masalah Apabila menggunakan jQuery untuk membangunkan halaman hadapan, kadangkala anda akan menghadapi

Apakah soalan yang terlibat dalam peperiksaan Yulong 8 Wine Master? Apakah jawapan yang sepadan? Bagaimana untuk lulus peperiksaan dengan cepat? Terdapat banyak soalan yang perlu dijawab dalam aktiviti Peperiksaan Sarjana Wain, dan kita boleh merujuk kepada jawapan untuk menyelesaikannya. Soalan-soalan ini semua melibatkan pengetahuan tentang wain. Jika anda memerlukan rujukan, mari kita lihat analisis terperinci tentang jawapan kepada soalan peperiksaan Yakuza 8 Wine Master! Penjelasan terperinci tentang jawapan kepada soalan dalam peperiksaan Rulong 8 Wine Master 1. Soalan mengenai "wain". Ini adalah minuman keras suling yang dihasilkan oleh kilang penyulingan yang ditubuhkan oleh keluarga diraja Ia dibancuh daripada gula tebu yang ditanam dalam kuantiti yang banyak di Hawaii. Apakah nama wain ini? Jawapan: Rum 2. Soalan tentang "arak". Gambar menunjukkan minuman yang diperbuat daripada gin kering dan vermouth kering. Ia dicirikan oleh penambahan buah zaitun dan dikenali sebagai "cockney"

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut
