Maison interface Web js tutoriel Javascript 面试题随笔_javascript技巧

Javascript 面试题随笔_javascript技巧

May 16, 2016 pm 06:08 PM
面试题

复制代码 代码如下:

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还是一个很好玩的语言。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Cinq questions et réponses courantes en matière d'entretien en langage Go Cinq questions et réponses courantes en matière d'entretien en langage Go Jun 01, 2023 pm 08:10 PM

En tant que langage de programmation devenu très populaire ces dernières années, le langage Go est devenu un point chaud pour les entretiens dans de nombreuses entreprises. Pour les débutants du langage Go, comment répondre aux questions pertinentes lors du processus d’entretien est une question qui mérite d’être explorée. Voici cinq questions et réponses courantes d’entretien en langage Go pour référence pour les débutants. Veuillez présenter comment fonctionne le mécanisme de récupération de place du langage Go ? Le mécanisme de récupération de place du langage Go est basé sur l'algorithme de balayage de marque et l'algorithme de marquage à trois couleurs. Lorsque l'espace mémoire du programme Go n'est pas suffisant, le garbage collector Go

Résumé des questions d'entretien React front-end en 2023 (Collection) Résumé des questions d'entretien React front-end en 2023 (Collection) Aug 04, 2020 pm 05:33 PM

En tant que site Web d'apprentissage de la programmation bien connu, le site Web chinois php a compilé pour vous des questions d'entretien React afin d'aider les développeurs front-end à préparer et à éliminer les obstacles aux entretiens React.

Une collection complète de questions et réponses d'entretien Web front-end sélectionnées en 2023 (Collection) Une collection complète de questions et réponses d'entretien Web front-end sélectionnées en 2023 (Collection) Apr 08, 2021 am 10:11 AM

Cet article résume certaines questions d'entretien Web frontales sélectionnées qui méritent d'être collectées (avec réponses). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

50 questions d'entretien angulaires que vous devez maîtriser (Collection) 50 questions d'entretien angulaires que vous devez maîtriser (Collection) Jul 23, 2021 am 10:12 AM

Cet article partagera avec vous 50 questions d'entretien Angular qu'il faut maîtriser. Ces 50 questions d'entretien seront analysées en trois parties : débutant, intermédiaire et avancé, et vous aideront à bien les comprendre !

Intervieweur : Que savez-vous de la haute simultanéité ? Moi : euh... Intervieweur : Que savez-vous de la haute simultanéité ? Moi : euh... Jul 26, 2023 pm 04:07 PM

La haute concurrence est une expérience que presque tous les programmeurs souhaitent vivre. La raison est simple : à mesure que le trafic augmente, nous rencontrerons divers problèmes techniques, tels qu'un délai de réponse de l'interface, une charge CPU accrue, des GC fréquents, des blocages, un stockage de données volumineux, etc.

Partage des questions d'entretien à haute fréquence Vue en 2023 (avec analyse des réponses) Partage des questions d'entretien à haute fréquence Vue en 2023 (avec analyse des réponses) Aug 01, 2022 pm 08:08 PM

Cet article résume pour vous quelques questions d'entretien à haute fréquence sélectionnées en 2023 (avec réponses) qui valent la peine d'être collectées. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Jetez un œil à ces questions d'entretien préliminaires pour vous aider à maîtriser les points de connaissances à haute fréquence (4) Jetez un œil à ces questions d'entretien préliminaires pour vous aider à maîtriser les points de connaissances à haute fréquence (4) Feb 20, 2023 pm 07:19 PM

10 questions par jour. Après 100 jours, vous maîtriserez tous les points de connaissances à haute fréquence des entretiens front-end. ! ! , en lisant l'article, j'espère que vous ne regardez pas directement les réponses, mais demandez-vous d'abord si vous le savez, et si oui, quelle est votre réponse ? Pensez-y et comparez-la avec la réponse. Serait-ce mieux ? Bien sûr, si vous avez une meilleure réponse que la mienne, veuillez laisser un message dans la zone de commentaire et discuter ensemble de la beauté de la technologie.

Jetez un œil à ces questions d'entretien préliminaires pour vous aider à maîtriser les points de connaissances à haute fréquence (5) Jetez un œil à ces questions d'entretien préliminaires pour vous aider à maîtriser les points de connaissances à haute fréquence (5) Feb 23, 2023 pm 07:23 PM

10 questions par jour. Après 100 jours, vous maîtriserez tous les points de connaissances à haute fréquence des entretiens front-end. ! ! , en lisant l'article, j'espère que vous ne regardez pas directement la réponse, mais demandez-vous d'abord si vous la connaissez, et si oui, quelle est votre réponse ? Pensez-y et comparez-la avec la réponse. Serait-ce mieux ? Bien sûr, si vous avez une meilleure réponse que la mienne, veuillez laisser un message dans la zone de commentaire et discuter ensemble de la beauté de la technologie.

See all articles