91 votes

Quelle est l'utilité de l'utilisation de la fonction init() en JavaScript ?

Quelle est la signification et l'usage de l'expression init() en JavaScript ?

1 votes

Init est juste un raccourci pour initier. Typiquement, elle est utilisée pour créer un "nouvel objet()". Comme la fonction init() de jQuery qui renvoie un nouvel objet jQuery.

3 votes

@LiamWilliam - initialiser

142voto

nnnnnn Points 70578

JavaScript ne dispose pas d'une fonction intégrée init() fonction, c'est-à-dire qu'elle ne fait pas partie de la langue. Mais il n'est pas rare (dans de nombreux langages) que des programmeurs individuels créent leur propre fonction init() pour l'initialisation.

Une particularité init() peut être utilisée pour initialiser l'ensemble de la page Web, auquel cas elle sera probablement appelée par le traitement document.ready ou onload, ou pour initialiser un type d'objet particulier, ou... bref, tout ce que vous voulez.

Ce que tout init() fait spécifiquement est vraiment à la hauteur de ce que la personne qui l'a écrit avait besoin qu'il fasse. Certains types de code n'ont pas besoin d'être initialisés.

function init() {
  // initialisation stuff here
}

// elsewhere in code
init();

38voto

Venkat Points 471

En JavaScript, lorsque vous créez un objet par le biais d'un appel au constructeur, comme ci-dessous

étape 1 : création d'une fonction disons Personne

function Person(name){
this.name=name;
}
person.prototype.print=function(){
console.log(this.name);
}

étape 2 : créer une instance pour cette fonction

var obj=new Person('venkat')

//la ligne ci-dessus instanciera cette fonction(Person) et retournera un tout nouvel objet appelé Person {nom:'venkat'}

si vous ne voulez pas instancier cette fonction et l'appeler en même temps, nous pouvons aussi faire comme ci-dessous

var Person = {
  init: function(name){
    this.name=name;
  },
  print: function(){
    console.log(this.name);
  }
};
var obj=Object.create(Person);
obj.init('venkat');
obj.print();

dans la méthode ci-dessus init aidera à instancier les propriétés de l'objet. En fait, init est comme un appel au constructeur de votre classe.

2voto

Kiran Raj R Points 59

NB. Les noms des fonctions constructives doivent commencer par une majuscule pour les distinguer des fonctions ordinaires, par ex. MyClass au lieu de myClass .

Soit vous pouvez appeler init de votre fonction constructeur :

var myObj = new MyClass(2, true);

function MyClass(v1, v2) 
{
    // ...

    // pub methods
    this.init = function() {
        // do some stuff        
    };

    // ...

    this.init(); // <------------ added this
}

Ou plus simplement, vous pouvez simplement copier le corps de la page init à la fin de la fonction constructeur. Il n'est pas nécessaire d'avoir une fonction init pas du tout si elle n'est appelée qu'une seule fois.

0voto

Proau Points 1

C'est plutôt un code inaccessible

Par exemple, si la variable x ou fonction x() est déclaré en dessous de la ligne où son appelé, cette erreur se produit :

 setPlayerOne();

let imageGenerator = (value) =>{
allImages = {
    1: 'images/dice1.png',
    2: 'images/dice2.png',
    3: 'images/dice3.png',
    4: 'images/dice4.png',
    5: 'images/dice5.png',
    6: 'images/dice6.png',
}
  return allImages[Number(value)];
}

findRandom = () =>{
    let randomNumber = Math.floor(Math.random() * 6) +1
    return randomNumber;
}

let setPlayerOne = () =>{
   let img1 = document.querySelector('.img1').attributes.src;
   img1.value = imageGenerator(findRandom())
}

let setPlayerTwo = () =>{
    let img2 = document.querySelector('.img2').attributes.src;
    img2.value = imageGenerator(findRandom())
}

setPlayerTwo();

setPlayerOne() générera ceci mais setPlayerTwo() ne sera pas généré ; ceci parce que setPlayerOne() a été appelé avant d'être initialisé par JS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X