javascript - js orienté objet
扔个三星炸死你
扔个三星炸死你 2017-06-26 10:58:46
0
4
624

Excusez-moi, quelle est la différence entre ajouter ou non des parenthèses dans la fonction mm après nouveau. Pourquoi est-ce que j'obtiens les mêmes résultats ? Un expert senior peut-il expliquer le principe ?

扔个三星炸死你
扔个三星炸死你

répondre à tous(4)
大家讲道理

Tout d'abord, pour ce genre de question basique, vous devez apprendre à consulter la documentation officielle.
La documentation contient des instructions détaillées : new foo est équivalent à new foo(), qui ne peut être utilisé que sans passer de paramètres.
Bien sûr, vous ne pouvez pas faire entièrement confiance à la documentation, après tout, les pièges de js. .
Alors quelle est la différence ? Il y a des explications détaillées dans ce
résumé des priorités : new (avec liste de paramètres) a une priorité de 19, et new (sans séparation des paramètres) a une priorité de 18, donc new foo() sera exécuté en premier

Enfin, je me souviens avoir vu il n'y a pas longtemps un article sur une question d'entretien plutôt dégoûtante, qui testait..., new f(), new f, new f.g(), new f().g(), etc. problème de calcul de priorité, vous pouvez le rechercher vous-même

phpcn_u1582

Référez-vous à MDN

nouveau constructeur[([arguments])]

Lorsqu'il n'est pas nécessaire de passer des paramètres, les parenthèses () sont facultatives

洪涛

var mm = fonction(val){

this.m = val

}
var a = nouveau mm(1) ;
console.log(a)
var b = nouveau mm ;
console.log(b)

过去多啦不再A梦

Si le constructeur ne nécessite pas de paramètres, il n'y a aucune différence entre ajouter et ne pas ajouter de parenthèses.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal