Rumah hujung hadapan web tutorial js Javascript 面试题随笔_javascript技巧

Javascript 面试题随笔_javascript技巧

May 16, 2016 pm 06:08 PM
Soalan temu bual

复制代码 代码如下:

var Fundamental = {count:1};
function Test(){}
Test.prototype = Fundamental;
Test.prototype.increase = function(){this.count++;};
var test = new Test();
console.log(test.count);
var test2 = new Test();
console.log(test2.count);
test.increase();
//test.count和test2.count的值各是多少

前天去面试遇到的一道题,面试的问题大概是当test.increase被调用时,test和test2的count值分别是多少
首先,回答这道题有可能把这种情况与另一种类似的情况相混淆:
假如把代码改成:
复制代码 代码如下:

function FundamentalModified(){
var count = 1;
this.increase = function(){
count++;
}
this.show = function(){
return count;
}
}
function TestModified(){}
TestModified.prototype = new FundamentalModified();
var test3 = new TestModified();
var test4 = new TestModified();
test3.increase();
//test3.show()和test4.show()各是多少

假如问题改成这样,那就简单的多了。但是两个问题并不会得到相同的结果。
==========================================分割一下
回到面试题中,其实面试题的答案是2和1。原因呢:test.count是test的属性,而且test2.count其实是test2.__proto__的属性:

当test.increase()被调用时,JS执行了this.count++ ==> 返回this.count; this.count = this.count + 1;

this.count = this.count + 1;

这句在看似简单的语句其实有着不同寻常的意味~~

这句话的意思其实是,给实例新建一个属性,这个属性被赋予this.count + 1的值。

this.count 其实是在原型链中的count,也就是这个this.count++其实在第一次执行的时候表现为:

this.count = Test.Prototype.count + 1;

可以用hasOwnProperty来验证一下:

当var test = new Test()时。test.hasOwnProperty("count")  === false
test.increase()后。 test.hasOwnProperty("count")  === true
总的来说,JS还是一个很好玩的语言。

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Lima soalan dan jawapan temu bual bahasa Go yang biasa Lima soalan dan jawapan temu bual bahasa Go yang biasa Jun 01, 2023 pm 08:10 PM

Sebagai bahasa pengaturcaraan yang telah menjadi sangat popular sejak beberapa tahun kebelakangan ini, bahasa Go telah menjadi tempat hangat untuk temu duga di banyak syarikat dan perusahaan. Bagi pemula bahasa Go, cara menjawab soalan yang berkaitan semasa proses temu duga adalah soalan yang patut diterokai. Berikut ialah lima soalan dan jawapan temuduga bahasa Go yang biasa untuk rujukan pemula. Sila perkenalkan bagaimana mekanisme pengumpulan sampah bahasa Go berfungsi? Mekanisme pengumpulan sampah bahasa Go adalah berdasarkan algoritma sapu tanda dan algoritma penandaan tiga warna. Apabila ruang memori dalam program Go tidak mencukupi, pengumpul sampah Go

2023年前端React面试题大汇总(收藏) 2023年前端React面试题大汇总(收藏) Aug 04, 2020 pm 05:33 PM

php中文网作为知名编程学习网站,为您整理了一些React面试题,帮助前端开发人员准备和清除React面试障碍。

2023年精选Web前端面试题大全及答案(收藏) 2023年精选Web前端面试题大全及答案(收藏) Apr 08, 2021 am 10:11 AM

本篇文章给大家总结一些值得收藏的精选Web前端面试题(附答案)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

50 soalan temuduga sudut yang anda mesti kuasai (Koleksi) 50 soalan temuduga sudut yang anda mesti kuasai (Koleksi) Jul 23, 2021 am 10:12 AM

Artikel ini akan berkongsi dengan anda 50 soalan temuduga sudut yang anda mesti kuasai. Ia akan menganalisis 50 soalan temu bual ini daripada tiga bahagian: pemula, pertengahan dan lanjutan, dan membantu anda memahaminya dengan teliti!

Penemuduga: Sejauh manakah anda tahu tentang konkurensi tinggi? saya: emmm... Penemuduga: Sejauh manakah anda tahu tentang konkurensi tinggi? saya: emmm... Jul 26, 2023 pm 04:07 PM

Keselarasan tinggi adalah pengalaman yang hampir setiap pengaturcara mahu miliki. Sebabnya mudah: apabila trafik meningkat, kami akan menghadapi pelbagai masalah teknikal, seperti tamat masa tindak balas antara muka, beban CPU yang meningkat, GC yang kerap, kebuntuan, storan data yang besar, dll. Masalah ini boleh menggalakkan kami dalam peningkatan berterusan dalam kedalaman teknikal.

Perkongsian soalan temuduga frekuensi tinggi Vue pada tahun 2023 (dengan analisis jawapan) Perkongsian soalan temuduga frekuensi tinggi Vue pada tahun 2023 (dengan analisis jawapan) Aug 01, 2022 pm 08:08 PM

Artikel ini meringkaskan untuk anda beberapa soalan temu duga frekuensi tinggi vue terpilih pada tahun 2023 (dengan jawapan) yang patut dikumpul. Ia mempunyai nilai rujukan tertentu Rakan-rakan yang memerlukan boleh merujuk kepadanya.

Lihat soalan temu duga bahagian hadapan ini untuk membantu anda menguasai mata pengetahuan frekuensi tinggi (4) Lihat soalan temu duga bahagian hadapan ini untuk membantu anda menguasai mata pengetahuan frekuensi tinggi (4) Feb 20, 2023 pm 07:19 PM

10 soalan setiap hari Selepas 100 hari, anda akan menguasai semua mata pengetahuan frekuensi tinggi temuduga hadapan. ! ! , semasa membaca artikel itu, saya harap anda tidak melihat jawapan secara langsung, tetapi fikirkan dahulu sama ada anda mengetahuinya, dan jika ya, apakah jawapan anda? Fikirkan tentangnya dan kemudian bandingkan dengan jawapannya Adakah lebih baik, jika anda mempunyai jawapan yang lebih baik daripada saya, sila tinggalkan mesej di kawasan komen dan bincangkan keindahan teknologi bersama-sama.

Lihat soalan temu duga bahagian hadapan ini untuk membantu anda menguasai mata pengetahuan frekuensi tinggi (5) Lihat soalan temu duga bahagian hadapan ini untuk membantu anda menguasai mata pengetahuan frekuensi tinggi (5) Feb 23, 2023 pm 07:23 PM

10 soalan setiap hari Selepas 100 hari, anda akan menguasai semua mata pengetahuan frekuensi tinggi temuduga hadapan. ! ! , semasa membaca artikel itu, saya harap anda tidak melihat jawapan secara langsung, tetapi fikirkan dahulu sama ada anda mengetahuinya, dan jika ya, apakah jawapan anda? Fikirkan tentangnya dan kemudian bandingkan dengan jawapannya Adakah lebih baik, jika anda mempunyai jawapan yang lebih baik daripada saya, sila tinggalkan mesej di kawasan komen dan bincangkan keindahan teknologi bersama-sama.

See all articles