Au chargement du document, j'initie une fonction qui s'appelle elle-même. Et plus tard, à partir de la fonction renvoyée, j'essaie d'obtenir la sortie. mais je ne reçois pas. la façon dont je fais ça mal ici.

Quelqu'un me corrige et enseigne la bonne façon d'utiliser les fonctions auto-initiées?

Voici mon essai:

var BankAccount = (function () { 

  function BankAccount() { 
    this.balance = 0; 
  } 

  BankAccount.prototype.deposit = function(credit) { 
    this.balance += credit; return this.balance; 
  }; 

  return BankAccount; 

})();

var myDeposit = BankAccount.deposit(50); //throws error as ankAccount.deposit is not a function

Vivre

0
3gwebtrain 6 mars 2016 à 17:21

3 réponses

Meilleure réponse

Vous devez renvoyer l'instance du compte bancaire:

return new BankAccount();
1
madox2 6 mars 2016 à 14:24

Vous devez appeler votre constructeur avant de pouvoir appeler .deposit

var account = new BankAccount();
var balance = account.deposit(50);
console.log(balance); // 50

Cela vous permettrait de gérer plusieurs comptes où chaque compte a son propre solde.

var a = new BankAccount();
a.deposit(50); // 50

var b = new BankAccount();
b.deposit(20); // 20

console.log(a.balance); // 50
console.log(b.balance); // 20
1
Thank you 6 mars 2016 à 14:24

Vous avez écrit une fonction constructeur, mais vous ne l'avez pas appelée comme telle.

var myBankAccount = new BankAccount();
var myDeposit = myBankAccount.deposit(50); 
1
Quentin 6 mars 2016 à 14:24