Cet article JavaScript didacticiel vous des instructions compl?tes rempli et des exemples de code JavaScript pour utiliser cet objet JavaScript Vous pouvez apprendre beaucoup de connaissances de base JavaScript , comme la port?e , d'appeler une fonction/m?thode , etc
Les objets JavaScript : comparer et Clone
? Permettez- Get Started JavaScript Programmation Orient?e Objet
? Quiz de test d'objets JavaScript
? Concepts simples sur les types et les objets en JavaScript POO
? Techniques Object Oriented JavaScript
- Demo
- Agrandir
- Recharger
- New window
G�n�rez vos vid�os d'entreprise par l'IA avec la voix ou simplement du texte
Votre premi�re application vid�o AI GRATUITE ! Automatisez votre premi�re vid�o AI. Cr�ez votre vid�o professionnelle en 5 minutes gr�ce � l'IA. Aucun �quipement ni comp�tence en montage vid�o requis. Production vid�o sans effort pour les sp�cialistes du marketing de contenu.
2. Module madness
This one will give you a headache. Examine the following code which uses a module pattern:
window.WhoAmI = "I'm the window object";
var Module = function() {
this.WhoAmI = "I'm the Module object";
function Test() {
this.WhoAmI = "I'm still the Module object";
}
return {
WhoAmI: WhoAmI,
Test: Test
};
}();
alert(Module.WhoAmI); // I'm the Module object
alert(window.WhoAmI); // I'm the Module object
Module.Test();
alert(Module.WhoAmI); // I'm still the Module object
The code looks logical � so why is window.WhoAmI
saying it�s the module object?
We need to remember that we have a self-executing function. It�s results are returned to the Module
variable but, when it�s first run, Module doesn�t exist. this
is therefore the global window object. In other words, this.WhoAmI
= window.WhoAmI
= "I'm the Module object"
.
The function returns a JavaScript object with a WhoAmI
property with a value of 'WhoAmI'
. But what does that refer to? In this case, the JavaScript interpreter works up its prototype chain until it magically finds window.WhoAmI
("I'm the Module object"
).
Finally, we run the Test()
method. However, Module
has now been created so, within the Test
function, this
refers to the Module
object so it can correctly set the WhoAmI
property.
In summary, avoid using this
within a module to refer to the module itself! You should never need it.
3. Method misconceptions
Here�s another JavaScript pattern which will screw with your synapses:
var myObject = {};
myObject.method = function() {
this.WhoAmI = "I'm myObject.method";
function Test() {
this.WhoAmI = "I'm myObject.method.Test()";
}
Test();
return this.WhoAmI;
};
alert(myObject.method()); // I'm myObject.method
In this example, Test()
is a private function executed within myObject.method()
. At first glance, you would expect this
within Test()
to reference myObject
. It doesn�t: it refers to the global window object since it�s just another function.
If you want to reference myObject
within the private function, you�ll require a closure, for example:
var myObject = {};
myObject.method = function() {
this.WhoAmI = "I'm myObject.method";
var T = this;
function Test() {
T.WhoAmI = "I'm myObject.method.Test()";
}
Test();
return this.WhoAmI;
};
alert(myObject.method()); // I'm myObject.method.Test()
4. Referencing methods
Here�s a little code which, fortunately, will work exactly as you expect:
var myObject = {};
myObject.WhoAmI = "I'm myObject";
myObject.method = function() {
this.WhoAmI = "I'm myObject.method";
};
// examine properties
alert(myObject.WhoAmI); // I'm myObject
myObject.method();
alert(myObject.WhoAmI); // I'm myObject.method
Let�s make a minor change and assign myObject.method
to another variable:
// examine properties
alert(myObject.WhoAmI); // I'm myObject
var test = myObject.method;
test();
alert(myObject.WhoAmI); // I'm myObject
Why hasn�t myObject.WhoAmI
changed? In this case, the call to test()
acts like a regular function call so this
refers to the window object rather than myObject
.
If you think that�s nasty, wait until we take a look at JavaScript event handlers in my next post!
- Sent (0)
- Nouveau
Générez vos vidéos d'entreprise par l'IA avec la voix ou simplement du texte
chatGPTaz.com
Parlez à ChatGPT dans votre langue maternelle
AppAIVidéo
Votre première application vidéo AI GRATUITE
Deepfake Video
Deepfake AI Video Maker
Deepfake
Deepfake AI Video Maker
AI Deep Fake
Deepfake AI Video Maker
AIvidio
AI Video Mobile Solutions
AIvideos
AI Video Platform & Solutions
AIvedio
AI Video App Maker
Artificial General Intelligence
Ai and higher level Artificial General Intelligence (AGI)
Artificial General Intelligence
Ai and higher level Artificial General Intelligence (AGI)
Faceswap AI en ligne
Échangez des visages, des vidéos, des photos et des GIF instantanément avec de puissants outils d'IA - Faceswap AI Online GRATUIT
Faceswap AI en ligne
Échangez des visages, des vidéos, des photos et des GIF instantanément avec de puissants outils d'IA - Faceswap AI Online GRATUIT
Faceswap AI en ligne
Échangez des visages, des vidéos, des photos et des GIF instantanément avec de puissants outils d'IA - Faceswap AI Online GRATUIT
Powerful AI Presentation PPT Maker for FREE
Build an impressive presentation with our free online AI presentation app
Your next top AI Assistant
Claude AI, developed by Anthropic
Your next top AI Assistant
Claude AI, developed by Anthropic
Temu gratuit 500 $ pour les nouveaux utilisateurs
Claim Free Temu $500 Credit via Affiliate & Influencer Program
Crédits publicitaires TikTok gratuits
Maîtrisez les publicités TikTok pour le marketing de votre entreprise
Dall-E-OpenAI.com
Générez automatiquement des images créatives avec l'IA
chatGPT4.win
Parlez à ChatGPT dans votre langue maternelle
Premier produit d'intelligence artificielle d'Elon Musk - Grok/UN.com
Parlez au chatbot Grok AI dans votre langue
Outily.win
Centre d'outils ouvert et gratuit, utilisable par tous et pour tous, avec des centaines d'outils
GateIO.gomymobi.com
Airdrops gratuits à réclamer et à partager jusqu'à 150 000 $ par projet
iPhoneKer.com
Économisez jusqu'à 630 $ à l'achat d'un nouvel iPhone 16
Acheter le robot Tesla Optimus
Commandez votre robot Tesla Bot : Optimus Gen 2 dès aujourd'hui pour moins de 20 000 $