Quelle est la signification et l'usage de l'expression init()
en JavaScript ?
Réponses
Trop de publicités?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();
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.
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.
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.
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