详解new function(){}和function(){}() 区别分析_js面向对象
情景一:
var yx01 = new function() {return "圆心"};
alert(yx01);
我们运行情景一代码,将返回显示“[object object] ”,此时该代码等价于:
function 匿名类(){
return "圆心";
}
var yx01 = new 匿名类();
alert(yx01);我们对情景一的代码进行下面改造:
var yx01 = new function() {return new String("圆心")};
alert(yx01);
我们运行,将会发现返回的是“圆心”,这是为什么呢?
只要 new 表达式之后的 constructor 返回(return)一个引用对象(数组,对象,函数等),都将覆盖new创建的匿名对象,如果返回(return)一个原始类型(无 return 时其实为 return 原始类型 undefined),那么就返回 new 创建的匿名对象
由于 new String 会构造一个对象,而不是一个 string 直接量,且new String(x) 如果带参数,那么alert它的时候就会返回 x。所以 yx01 将返回 new String(”圆心”) 这个对象,而 alert yx01 则显示 “圆心”。
情景二:
var yx02 = function() {return "圆心"}();
alert(yx02);我们运行情景二代码,将返回显示“圆心”,此时该代码等价于:
var 匿名函数 = function() {return "圆心"};
yx02 = 匿名函数();
alert(yx02);很明显,yx02 返回的是匿名函数的执行结果值,即 yx02 为:“圆心”。
当然匿名函数的执行结果也可以为一个匿名对象。具体常见应用可以看《Javascript的一种模块模式》

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)

Pour analyser en profondeur la différence entre la fonction lenb et la fonction len, des exemples de code spécifiques sont nécessaires. Dans le langage de programmation Python, les chaînes sont un type de données courant et les chaînes nécessitent souvent des opérations et des traitements associés. Dans le processus de traitement des chaînes, nous utilisons souvent la fonction permettant d'obtenir la longueur d'une chaîne. Python fournit deux fonctions intégrées pour obtenir la longueur d'une chaîne, à savoir la fonction lenb et la fonction len. Bien que leurs noms de fonctions soient très similaires, ils présentent en réalité des différences importantes dans la façon dont ils gèrent la longueur des chaînes.

Différences : 1. Make ne peut être utilisé que pour allouer et initialiser des données de types slice, map et chan, tandis que new peut allouer n'importe quel type de données. 2. La nouvelle allocation renvoie un pointeur, qui est le type "*Type" tandis que make renvoie une référence, qui est le Type. 3. L'espace alloué par new sera effacé ; une fois que make aura alloué l'espace, il sera initialisé.

1. Concept Dans le langage Java, l'expression "nouvelle" est responsable de la création d'une instance, dans laquelle le constructeur est appelé pour initialiser l'instance ; le type de valeur de retour du constructeur lui-même est vide, et non "le constructeur renvoie la nouvelle expression créée". Référence d'objet", mais la valeur de la nouvelle expression est une référence à l'objet nouvellement créé. 2. Objectif : créer un objet d'une nouvelle classe. 3. Mécanisme de travail : allouer de l'espace mémoire aux membres de l'objet et spécifier les valeurs par défaut. Initialiser explicitement les variables des membres, effectuer des calculs de méthode de construction et renvoyer souvent des valeurs de référence. signifie en ouvrir de nouveaux en mémoire. L'espace mémoire est alloué dans la zone de tas de la mémoire. Il est contrôlé par jvm et gère automatiquement la mémoire. Ici, nous utilisons la classe String comme exemple. Pu

Le langage C est un langage de programmation général largement utilisé dans le développement de logiciels système, les systèmes embarqués, le développement de jeux et d'autres domaines. En comparaison, d’autres langages de programmation comme Python, Java, JavaScript, etc. ont également leurs propres avantages dans différents domaines. Cet article comparera et différera entre le langage C et d'autres langages de programmation, et donnera des exemples de code spécifiques à illustrer. Tout d’abord, le langage C est un langage de programmation procédural qui se concentre sur le contrôle et l’optimisation de l’ordinateur sous-jacent. En revanche, Python est un logiciel orienté objet


Comment fonctionne l'opérateur new dans js ? Des exemples de code spécifiques sont nécessaires. L'opérateur new dans js est un mot-clé utilisé pour créer des objets. Sa fonction est de créer un nouvel objet instance basé sur le constructeur spécifié et de renvoyer une référence à l'objet. Lors de l'utilisation de l'opérateur new, les étapes suivantes sont réellement effectuées : créer un nouvel objet vide ; pointer le prototype de l'objet vide vers l'objet prototype du constructeur ; attribuer la portée du constructeur au nouvel objet (cela pointe donc vers new ; objet); exécuter le code dans le constructeur et donner le nouvel objet

Fujifilm a connu beaucoup de succès ces dernières années, en grande partie grâce à ses simulations de films et à la popularité de ses appareils photo compacts de type télémètre sur les réseaux sociaux. Cependant, il ne semble pas se reposer sur ses lauriers, selon Fujirumors. Le toi

Utiliser clone() au lieu de new La manière la plus courante de créer une nouvelle instance d'objet en Java consiste à utiliser le mot-clé new. La prise en charge de new par JDK est très bonne. Lorsque vous utilisez le mot-clé new pour créer des objets légers, cela est très rapide. Cependant, pour les objets lourds, le temps d'exécution du constructeur peut être plus long car l'objet peut effectuer certaines opérations complexes et chronophages dans le constructeur. Le système ne peut donc pas obtenir un grand nombre d’instances à court terme. Pour résoudre ce problème, vous pouvez utiliser la méthode Object.clone(). La méthode Object.clone() peut contourner le constructeur et copier rapidement une instance d'objet. Cependant, par défaut, l'instance générée par la méthode clone() n'est qu'une copie superficielle de l'objet original.
