Cet exemple décrit l'utilisation de la fonction JS. Partagez-le pour votre référence. Les détails sont les suivants:
Lorsque vous écrivez des fonctions dans JS, cela est beaucoup utilisé. Qu'est-ce que c'est exactement? Il s'agit d'un mot-clé, un pointeur, pointant la portée de l'environnement d'exécution, également appelé contexte.
Parlons d'abord des fonctions. Personnellement, je comprends que les fonctions sont des blocs de code qui sont appelés à plusieurs reprises dans la langue.
Dans JS, lorsqu'une fonction est affectée aux propriétés d'un objet, elle est appelée méthode
comme:
var m = {}; m.title = 'title'; M.Show = function () {alert (this.title)} M.Show ()Il s'agit d'appeler la fonction comme la méthode de l'objet m
Dans ce cas, cela pointe vers l'objet m.
Le nom de la fonction d'appel direct est appelé une fonction:
var a = 1212; fonction show () {alert (a) // 1212} show () // 1212Dans un environnement global, les variables globales peuvent être comprises comme des propriétés de fenêtre et les fonctions globales sont des méthodes de fenêtre
Voir l'exemple suivant:
var m = {}; m.id = 'mmm'; M.Show = function () {alert (this.id);} var a = {}; a.id = 'aaa'; a.show = M.Show; a.show (); //aaaa.show=m.mow; Comprenez d'abord cette phrase, car une fonction est un objet, m.show = function () {alert (this.id)}Cette expression équivaut à se référer à A.Show et M.Show en même temps
function () {alert (this.id)}En fait équivalent à
a.show = function () {alert (this.id)}Ainsi, lorsque A.Show () est appelé, cela pointe vers un objet A,
Regardez le châtaignier suivant
var m = {}; m.id = 'mmm'm.show = function () {alert (this.id)} var a = {} a.id =' aaa'a.show = function () {M.Show ()}; a.show (); // mmmmAinsi, lorsque vous appelez a.show (), il équivaut à appeler la méthode de m.show (), donc ceci. pointe vers un objet M.
Regardez l'exemple suivant, je ne le comprenais toujours pas beaucoup au début
var color = 'red'; var app = {}; app.color = "vert"; app.paint = function (node) {node.style.color = this.color; alert (this.color);} fonction findNode (callback) {var btn = document.QuerySelector ('. btn'); rappel (btn); // passer,} findNode (app.paint); alerte (this.color); // rouge au lieu de vertLorsqu'une fonction passe par un argument, il transmet des arguments en fonction de la valeur, pas des références
Ainsi, lorsque findNode (app.paint); est transmis, c'est en fait
function (node) {node.style.color = this.color; alerte (this.color);}, parce que FindNode est défini à l'échelle mondiale, cela pointe vers la fenêtre ou non définie;
À propos de passer des paramètres, de passer des valeurs passées
fonction affiche (a) {alerte (a)}Il est facile de comprendre quand les paramètres sont des types de données de base
var b = 10; show (b) // alert (10);
Quant à l'objet
var c = {}; c.prop = true; var showprop = function (obj) {obj.prop = false} showProp (c); //c.prop=falseCertaines personnes pensent que l'exemple ci-dessus est de passer les paramètres en fonction de la référence
En fait, ce qui précède passe toujours des paramètres en fonction de la valeur. Lorsque ShowProp (C) passe C dans la fonction, C est en fait équivalent à une référence. La fonction a obj.prop = false, ce qui équivaut à la modification de l'objet référencé à {prop: false}
Regardez l'exemple suivant
var c = {}; c.prop = true; var showprop = function (obj) {obj = new object (); obj.prop = false return obj;} showprop (c); alert (c.prop); //vraiIci, l'OBJ entrant a été modifié. Si vous transmettez les paramètres en fonction de la fonction par référence, les modifications à l'intérieur de la fonction seront certainement réfléchies à l'extérieur.
J'espère que cet article sera utile à la programmation JavaScript de tous.