Maison  >  Article  >  interface Web  >  Quels sont les trois types d’objets JavaScript ?

Quels sont les trois types d’objets JavaScript ?

青灯夜游
青灯夜游original
2021-11-24 18:17:025861parcourir

Trois types d'objets JavaScript : 1. Les objets internes, y compris les objets locaux qui doivent être instanciés pour être utilisés et les objets intégrés qui peuvent être utilisés sans instanciation ; 2. Les objets hôtes, qui sont des objets fournis par l'environnement qui s'exécute ; Scripts JS ; 3. Les objets personnalisés sont des objets définis par les développeurs eux-mêmes.

Quels sont les trois types d’objets JavaScript ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

Les objets en JavaScript peuvent être divisés en trois grandes catégories, à savoir les objets internes (objets locaux et objets intégrés), les objets hôtes et les objets personnalisés.

1, objets internes

1), objets locaux, objets fournis par ECMAScript qui doivent être instanciés (nouveaux) avant de pouvoir être utilisés :

Object, Function, Array, String, Boolean, Number , Date, RegExp , Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError

2), objets intégrés, objets fournis par ECMAScript qui peuvent être utilisés sans instanciation :

Uniquement Global (objet global) et Math

Propriétés de l'objet mathématique

Propriété Description
E Renvoie la constante arithmétique e, la base du logarithme népérien (approximativement égale à 2,718).
LN2 Renvoie le logarithme népérien de 2 (environ égal à 0,693).
LN10 Renvoie le logarithme népérien de 10 (environ 2,302).
LOG2E Renvoie le logarithme base 2 de e (environ 1,4426950408889634).
LOG10E Renvoie le logarithme base 10 de e (environ égal à 0,434).
PI Renvoie pi (approximativement égal à 3,14159).
SQRT1_2 Renvoie l'inverse de la racine carrée de 2 (environ égale à 0,707).
SQRT2 Renvoie la racine carrée de 2 (environ 1,414).

Méthodes des objets mathématiques

Méthode Description
abs(x) Renvoie la valeur absolue de x.
acos(x) Renvoie l'arc cosinus de x.
asin(x) Renvoie l'arc sinus de x.
atan(x) Renvoie l'arctangente de x sous la forme d'une valeur comprise entre -PI/2 et PI/2 radians.
atan2(y,x) Renvoie l'angle de l'axe des x au point (x,y) (entre -PI/2 et PI/2 radians).
ceil(x) Arrondit le logarithme.
cos(x) renvoie le cosinus du nombre.
exp(x) Renvoie l'exposant de Ex.
floor(x) Arrondit x.
log(x) Renvoie le logarithme népérien du nombre (base e).
max(x,y,z,...,n) Renvoie la valeur la plus élevée parmi x,y,z,...,n.
min(x,y,z,...,n) Renvoie la valeur la plus basse parmi x,y,z,...,n.
pow(x,y) Renvoie x élevé à la puissance y.
random() Renvoie un nombre aléatoire entre 0 et 1.
rond(x) Arrondi.
sin(x) Renvoie le sinus du nombre.
sqrt(x) Renvoie la racine carrée d'un nombre.
tan(x) Renvoie la tangente de l'angle.

Propriétés globales JavaScript

Property Description
Infinity représente une valeur infinie positive.
NaN indique si une valeur est une valeur numérique.
undefined indique une valeur indéfinie.

Fonction globale JavaScript

Fonction Description
decodeURI() Décoder un URI encodé.
decodeURIComponent() Décoder un composant URI codé.
encodeURI() Encodez une chaîne dans un URI.
encodeURIComponent() Encodez une chaîne dans un composant URI.
escape() Encoder une chaîne.
eval() Calcule une chaîne JavaScript et l'exécute sous forme de code de script.
isFinite() Vérifie si une valeur est un nombre fini.
isNaN() Vérifie si une valeur est un nombre.
Number() Convertissez la valeur de l'objet en nombre.
parseFloat() Analyse une chaîne et renvoie un float.
parseInt() Analyse une chaîne et renvoie un entier.
String() Convertissez la valeur de l'objet en chaîne.
unescape() Décode une chaîne codée par escape().

2. Objet hôte

L'objet hôte est l'objet fourni par l'environnement qui exécute le script JS, et est l'objet fourni par le navigateur. Tous les BOM et DOM sont des objets hôtes.

3. Objets personnalisés

Objets définis par les développeurs eux-mêmes

⑴Méthode littérale d'objet (création d'objets via JSON)

Inconvénients : Utiliser la même interface pour créer de nombreux objets produira beaucoup de code de duplication.

⑵Mode usine.

①Le modèle d'usine consiste à mettre l'instruction de création d'un objet dans une fonction, à créer un objet spécifique en passant des paramètres, et enfin à renvoyer l'objet créé.

La fonction createPerson() peut construire un objet Person contenant toutes les informations nécessaires en fonction des paramètres reçus.

Cette fonction peut être appelée d'innombrables fois, et à chaque fois elle renverra un objet contenant 2 propriétés et une méthode.

② Inconvénients : Bien que le modèle d'usine puisse créer plusieurs objets similaires, il ne peut pas résoudre le problème de l'identification des objets, c'est-à-dire comment connaître le type d'un objet.

⑶ Modèle de constructeur

① Inconvénients : Le principal problème lié à l'utilisation des constructeurs est que chaque méthode doit être créée sur chaque instance.

②Dans ECMAScript, les fonctions sont des objets, donc chaque fois qu'une fonction est définie, un objet est instancié.

③ En d'autres termes, les méthodes de plusieurs objets instanciés via le constructeur sont plusieurs méthodes différentes, mais leur code interne et leurs fonctions implémentées sont les mêmes, ce qui entraîne un certain gaspillage de ressources.

⑷Modèle de prototype

①En js, chaque fonction possède un attribut de prototype, qui est un pointeur pointant vers un objet, appelé objet prototype.

②L'utilisation du modèle de prototype permet à toutes les instances de partager les propriétés et les méthodes de l'objet prototype, c'est-à-dire qu'il n'est pas nécessaire de définir les informations de l'instance d'objet dans le constructeur.

③Inconvénients : Le lien de transmission des paramètres d'initialisation au constructeur est omis. Par conséquent, toutes les instances obtiendront les mêmes valeurs d'attribut​​par défaut.

Le plus gros problème avec le modèle prototype est dû à sa nature partagée. Toutes les propriétés du prototype sont partagées par de nombreuses instances

Ce type de partage est très adapté aux fonctions. Pour les propriétés contenant des types référence, le problème est plus important.

④ Le mode prototype est donc rarement utilisé seul.

⑸Utilisation combinée du modèle de constructeur et du modèle de prototype

①L'utilisation combinée du modèle de constructeur et du modèle de prototype est le moyen le plus courant de créer des types personnalisés.

②Le modèle constructeur est utilisé pour définir les propriétés de l'instance, tandis que le modèle prototype est utilisé pour définir les méthodes et les propriétés partagées.

③ En conséquence, chaque instance aura sa propre copie des attributs de l'instance, mais partagera en même temps des références aux méthodes, économisant ainsi la mémoire au maximum.

⑹Autres modes

①Mode prototype dynamique : Ce n'est que lorsque le constructeur est appelé pour la première fois que la méthode est affectée à la propriété correspondante de l'objet prototype. Les autres exemples sont traités de la même manière que le mode constructeur

②Constructeur Parasite. mode : encapsulez uniquement le code qui crée l'objet, puis renvoyez l'objet nouvellement créé, en utilisant toujours l'opérateur new pour appeler

③Mode constructeur sûr : pas de propriétés publiques, uniquement des variables et méthodes privées, et quelques méthodes get/set à gérer variables privées.

【Recommandations associées : Tutoriel d'apprentissage Javascript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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