Maison  >  Article  >  interface Web  >  Compréhension du nouveau functionName() pour définir une connaissance function_Basic

Compréhension du nouveau functionName() pour définir une connaissance function_Basic

WBOY
WBOYoriginal
2016-05-16 16:47:171396parcourir

Par exemple, définissez deux méthodes d'appel d'une fonction :

Copier le code Le code est le suivant :

function getInfo () {
var info = {
message : "message"
}
return info
}

1, var info1 ; = getInfo() ;

2. var info2 = new getInfo();

Y a-t-il une différence entre 1 et 2 ? Les valeurs obtenues par info1 et info2 sont-elles les mêmes ?

La première est très simple et largement utilisée. Il s'agit d'exécuter une fonction, d'accepter la valeur de retour de la fonction et de l'attribuer à l'objet info1

La deuxième situation est généralement rare ; . Tout d'abord, une fonction est également un objet, et l'objet peut certainement être instancié (l'instanciation consiste en fait à appeler le constructeur de l'objet pour initialiser l'objet). Le deuxième cas consiste à appeler le constructeur de l'objet fonction getInfo et à recevoir l'instance d'initialisation du constructeur. (généralement ceci), et une particularité de la fonction est que si le constructeur a une valeur de retour affichée, la valeur de retour sera utilisée pour remplacer l'objet this. Ainsi, dans le deuxième cas, new getInfo consiste à appeler le constructeur (le constructeur de la fonction est sa définition elle-même) et à recevoir les informations sur la valeur de retour.

Application :

1. Par exemple, HTML définit l'objet DOM :
, le code js est le suivant :
Copier le code Le code est le suivant :

function $(domId) {
var dom = document.getElementById(domId);
return dom;
}

window.onload = function() {
var dom1 = new $("domId"); dom2 = $("domId") ;
alert(dom1 == dom2);
}

Le message d'alerte s'affichera vrai. La raison pour laquelle $ est utilisé comme nom de fonction est que lorsque vous utilisez cette fonction, ressemble-t-elle un peu à jQuery ? En fait, le constructeur de jQuery utilise ce style de définition de fonction. Que vous utilisiez new ou appeliez la fonction directement, la valeur renvoyée est la même.

2. Définissez un objet XMLHttpRequest compatible (cet exemple est tiré de la section 18.1 du Javascript Authoritative Guide)
Tout le monde sait que différents navigateurs peuvent prendre en charge la communication asynchrone de différentes manières. , le code suivant définit un objet XMLHttpRequest compatible :

Copier le code Le code est le suivant :
if (window.XMLHttpRequest === non défini) {
window.XMLHttpRequest = function() {
try {
//Si disponible, utilisez la dernière version de l'objet ActiveX
retourne un nouvel ActiveXObject ("Msxml2.XMLHTTP.6.0");
} catch (ex1) {
try {
return new ActiveXObject("Msxml2.XMLHTTP.3.0"
} catch (ex2) {
lancer une nouvelle erreur ("XMLHttpRequest n'est pas pris en charge")
}
}
}
}

De cette façon, vous pouvez passer directement var xhr = new XMLHttpRequest() est défini, qu'il s'agisse d'IE ou de Firefox.
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