Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Objets natifs standards
  5. Function
  6. Function.prototype.call()

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

Function.prototype.call()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

La méthodecall() réalise un appel à une fonction avec une valeurthis donnée et des arguments fournis individuellement.

Note :Bien que la syntaxe de cette fonction ressemble à celle deapply(), la différence fondamentale réside dans le fait quecall() accepteune liste d'arguments, tandis que la méthodeapply() accepteun unique tableau d'arguments.

Exemple interactif

function Product(name, price) {  this.name = name;  this.price = price;}function Food(name, price) {  Product.call(this, name, price);  this.category = "food";}console.log(new Food("cheese", 5).name);// Expected output: "cheese"

Syntaxe

js
fun.call(thisArg[, arg1[, arg2[, ...]]])

Paramètres

thisArg

La valeurthis fournie pour l'appel de la fonctionfun. La valeur peut être différente de celle normalement perçue par la méthode : si la méthode est une fonction utilisée dans un code enmode non-strict,null andundefined seront remplacés par l'objet global et les valeurs primitives seront encapsulées en objets.

arg1, arg2, ...

Les arguments pour la fonction.

Valeur de retour

Le résultat de l'appel de la fonction invoquée avec la valeurthis indiquée et les arguments fournis.

Description

La méthodecall() permet d'appeler une fonction rattachée à un objet donné sur un autre objet.

Il est possible d'affecter un objetthis différent lors de l'appel à une fonction existante. En général,this fait référence à l'objet courant, celui sur lequel est appelée la méthode. Aveccall, on peut écrire une méthode une seule fois et ensuite en hériter dans un autre objet, sans avoir à réécrire cette méthode pour ce nouvel objet.

Exemples

Utilisercall() pour chaîner le constructeur d'un objet

Il est possible d'utilisercall pour chaîner le constructeur d'un objet, de façon similaire à Java. Dans l'exemple suivant, le constructeur de l'objetProduct est défini avec deux paramètres,name etprice. Deux autres fonctions,Food etToy invoquentProduct en passantthis,name etprice.Product initialise les propriétésname etprice, tandis que les fonctions spécialisées définissent la propriétécategory.

js
function Product(name, price) {  this.name = name;  this.price = price;}function Food(name, price) {  Product.call(this, name, price);  this.category = "food";}function Toy(name, price) {  Product.call(this, name, price);  this.category = "toy";}var cheese = new Food("feta", 5);var fun = new Toy("robot", 40);

Utilisercall() pour invoquer une fonction anonyme

Dans cet exemple (purement inventé), on crée une fonction anonyme et on utilisecall pour l'invoquer sur chaque objet d'un tableau. Le principal but de cette fonction anonyme est d'ajouter une fonctionprint sur chaque élément qui permet d'afficher l'index de l'objet. Le passage de l'objet en tant que valeurthis n'était pas nécessaire, mais il permet d'expliquer le sujet.

js
var animaux = [  { espece: "Lion", nom: "Roi" },  { espece: "Éléphant", nom: "Dumbo" },];for (var i = 0; i < animaux.length; i++) {  (function (i) {    this.print = function () {      console.log("#" + i + " " + this.espece + " : " + this.nom);    };    this.print();  }).call(animaux[i], i);}

Utilisercall() pour appeler une fonction avec un objet pourthis

Dans l'exemple qui suit, on utilise la méthodecall() sur la fonctionsaluer() afin de l'appliquer à l'objetpersonne1 :

js
function saluer() {  var reponse = [this.nom, "est un", this.role, "."].join(" ");  console.log(reponse);}var personne1 = {  nom: "Sénèque",  role: "philosophe",};saluer.call(personne1); // Sénèque est un philosophe.

Utilisercall() pour appeler une fonction sans indiquer de premier argument

Dans l'exemple qui suit, on appelle la fonctionafficher() sans lui passer d'argument. C'est donc l'objet global qui est utilisé comme contexte :

js
var prenom = "Archibald";function afficher() {  console.log("prenom vaut " + this.prenom);}afficher.call(); // prenom est Archibald

Note :La valeur dethis seraundefined en mode strict.

js
"use strict";var prenom = "Archibald";function afficher() {  console.log("prenom vaut " + this.prenom);}afficher.call(); // Cannot read the property prenom' of undefined

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-function.prototype.call

Compatibilité des navigateurs

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp