Savez-vous ce que fait js lors de la création d'un objet ?
Préface
En JavaScript, un objet instance peut être créé via l'opérateur new, et cet objet instance hérite des propriétés et méthodes de l'objet d'origine. Par conséquent, l'importance de l'existence de new est qu'il implémente l'héritage en JavaScript, et ne se contente pas d'instancier un objet.
Le rôle du nouveau
Commençons par comprendre le rôle du nouveau
à travers des exemples. Les exemples sont les suivants : new
的作用,示例如下:
function Person(name) { this.name = name } Person.prototype.sayName = function () { console.log(this.name) } const t = new Person('小明') console.log(t.name) // 小明 t.sayName() // 小明
从上面的例子中我们可以得出以下结论:
new
通过构造函数Person
创建出来的实例对象可以访问到构造函数中的属性。
new
通过构造函数Person
创建出来的实例可以访问到构造函数原型链中的属性,也就是说通过new
操作符,实例与构造函数通过原型链连接了起来。
构造函数 Person
并没有显式 return
任何值(默认返回 undefined
),如果我们让它返回值会发生什么事情呢?
function Person(name) { this.name = name return 1 } const t = new Person('小明') console.log(t.name) // 小明
在上述例子中的构造函数中返回了 1
,但是这个返回值并没有任何的用处,得到的结果还是和之前的例子完全一样。我们又可以得出一个结论:
构造函数如果返回原始值,那么这个返回值毫无意义。
我们再来试试返回对象会发生什么:
function Person(name) { this.name = name return {age: 23} } const t = new Person('小明') console.log(t) // { age: 23 } console.log(t.name) // undefined
通过上面这个例子我们可以发现,当返回值为对象时,这个返回值就会被正常的返回出去。我们再次得出了一个结论:
构造函数如果返回值为对象,那么这个返回值会被正常使用。
总结:这两个例子告诉我们,构造函数尽量不要返回值。因为返回原始值不会生效,返回对象会导致 new 操作符没有作用。
实现 new
首先我们要清楚,在使用 new
function _new(fn, ...args) { const newObj = Object.create(fn.prototype); const value = fn.apply(newObj, args); return value instanceof Object ? value : newObj; }
<. ul>new
L'objet instance créé via le constructeurPerson
peut accéder aux propriétés du constructeur.new
L'instance créée via le constructeurPerson
peut accéder aux propriétés de la chaîne de prototypes du constructeur, c'est-à-dire via les opérateursnew
, les instances et les constructeurs sont connectés via la chaîne de prototypes.
Person
ne renvoie
explicitement aucune valeur (la valeur par défaut renvoie undefined
), si nous quoi se passe-t-il s'il renvoie une valeur ? function Person(name) { this.name = name; } Person.prototype.sayName = function () { console.log(this.name); }; const t = _new(Person, "小明"); console.log(t.name); // 小明 t.sayName(); // 小明
1
, mais cette valeur de retour n'est d'aucune utilité et le résultat est exactement le même que l'exemple précédent. Nous pouvons tirer une autre conclusion :
Si le constructeur renvoie la valeur d'origine, alors la valeur de retour n'a aucun sens.Essayons ce qui se passe lorsque l'objet est renvoyé :
🎜Si la valeur de retour du constructeur est un objet, alors la valeur de retour sera utilisée normalement. 🎜🎜Résumé : Ces deux exemples nous disent que les constructeurs doivent essayer de ne pas renvoyer de valeurs. Étant donné que le renvoi de la valeur d'origine ne prendra pas effet, le renvoi de l'objet empêchera le nouvel opérateur d'avoir aucun effet. 🎜
Pour implémenter new🎜🎜Tout d'abord, nous devons savoir ce que js fait lors de l'utilisation de l'opérateur new
: 🎜🎜🎜js est créé en interne. object🎜🎜Cet objet peut accéder aux propriétés du prototype du constructeur, l'objet doit donc être connecté au constructeur🎜🎜Ceci à l'intérieur du constructeur est affecté au nouvel objet (c'est-à-dire qu'il pointe vers le nouvel objet)🎜🎜Retour la valeur d'origine doit être ignorée, l'objet renvoyé doit être traité normalement🎜🎜🎜Après avoir connu les étapes, nous pouvons commencer à implémenter la nouvelle fonction :🎜rrreee🎜L'exemple de test est le suivant :🎜rrreee🎜Ce qui précède concerne le rôle du nouvel opérateur en JavaScript et comment implémenter un nouvel opérateur. 🎜🎜
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

Qu’est-ce que JPA ? En quoi est-ce différent de JDBC ? JPA (JavaPersistence API) est une interface standard pour le mappage objet-relationnel (ORM), qui permet aux développeurs Java d'utiliser des objets Java familiers pour faire fonctionner des bases de données sans écrire de requêtes SQL directement sur la base de données. JDBC (JavaDatabaseConnectivity) est l'API standard de Java pour la connexion aux bases de données. Elle oblige les développeurs à utiliser des instructions SQL pour faire fonctionner la base de données. JPA encapsule JDBC, fournit une API plus pratique et de niveau supérieur pour le mappage objet-relationnel et simplifie les opérations d'accès aux données. Dans JPA, qu’est-ce qu’une entité ? entité
