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.
JavaScript is a great programming language. That would have been a controversial statement a few years ago, but developers have rediscovered its beauty and elegance. If you dislike JavaScript, it’s probably because:
- You’ve encountered browser API differences or problems — which isn’t really JavaScript’s fault.
- You’re comparing it to a class-based language such as C++, C# or Java — and JavaScript doesn’t behave in the way you expect.
One of the most confusing concepts is the ‘this’ keyword. In most languages, ‘this’ is a reference to the current object instantiated by the class. In JavaScript, ‘this’ normally refers to the object which ‘owns’ the method, but it depends on how a function is called.
Global Scope
If there’s no current object, ‘this’ refers to the global object. In a web browser, that’s ‘window’ — the top-level object which represents the document, location, history and a few other useful properties and methods.
window.WhoAmI = "I'm the window object";
alert(window.WhoAmI);
alert(this.WhoAmI); // I'm the window object
alert(window === this); // true
Calling a Function
‘this’ remains the global object if you’re calling a function:
window.WhoAmI = "I'm the window object";
function TestThis() {
alert(this.WhoAmI); // I'm the window object
alert(window === this); // true
}
TestThis();
Calling Object Methods
When calling an object constructor or any of its methods, ‘this’ refers to the instance of the object — much like any class-based language:
window.WhoAmI = "I'm the window object";
function Test() {
this.WhoAmI = "I'm the Test object";
this.Check1 = function() {
alert(this.WhoAmI); // I'm the Test object
};
}
Test.prototype.Check2 = function() {
alert(this.WhoAmI); // I'm the Test object
};
var t = new Test();
t.Check1();
t.Check2();
Using Call or Apply
In essence, call and apply run JavaScript functions as if they were methods of another object. A simple example demonstrates it further:
function SetType(type) {
this.WhoAmI = "I'm the "+type+" object";
}
var newObject = {};
SetType.call(newObject, "newObject");
alert(newObject.WhoAmI); // I'm the newObject object
var new2 = {};
SetType.apply(new2, ["new2"]);
alert(new2.WhoAmI); // I'm the new2 object
The only difference is that ‘call’ expects a discrete number of parameters while ‘apply’ can be passed an array of parameters.
That’s ‘this’ in a nutshell! However, there are several gotchas which may catch you out. We’ll discuss those in my next chapter
In above chapter, we looked at JavaScript�s this
statement and how it can change depending on the context of the function call. Today, we�ll examine several situations where this
could catch you out�
1. Forgetting �new�
Consider the following code:
window.WhoAmI = "I'm the window object";
function Test() {
this.WhoAmI = "I'm the Test object";
}
var t = Test();
alert(window.WhoAmI); // I'm the Test object
alert(t.WhoAmI); // t is undefined
What we really meant is:
var t = new Test();
The omission of the new
statement gave us
undesirable results. Other languages would throw an error when faced
with a direct call to a constructor but JavaScript simply treats it like
any other function call. this
is taken to be the global window object and no value is returned from Test()
so t
becomes undefined
.
This situation can be fixed if you�re writing a JavaScript library for third-party developers. Refer to Fixing Object Instances in JavaScript.
- Sent (0)
- Nouveau