init()用法在JavaScript中有什么用途

What is the use of the init() usage in JavaScript?

本文关键字:什么 JavaScript 用法 init      更新时间:2023-09-26

init()函数在JavaScript中的含义和用法是什么?

JavaScript没有内置的init()函数,也就是说,它不是语言的一部分。但是,对于个人程序员来说,创建自己的init()函数来初始化东西并不罕见(在很多语言中(。

一个特定的init()函数可以用于初始化整个网页,在这种情况下,它可能会从document.ready或onload处理中调用,也可能是初始化特定类型的对象,或者。。。好吧,你能想到的。

任何给定的init()的具体功能实际上取决于编写它的人需要它做什么。某些类型的代码不需要任何初始化。

function init() {
  // initialisation stuff here
}
// elsewhere in code
init();

在JavaScript中,当您通过以下中的构造函数调用创建任何对象时

步骤1:创建一个函数,比如Person。。

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

步骤2:为该函数创建一个实例。。

var obj=new Person('venkat')

//上面的行将实例化这个函数(Person(,并返回一个名为Person{name:‘venkat’}的全新对象

如果您不想实例化这个函数并同时调用,我们也可以执行以下操作。。

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

在上面的方法中,init将有助于实例化对象属性。基本上,init就像是对类的构造函数调用。

NB。构造函数函数名称应以大写字母开头,以区别于普通函数,例如MyClass而不是myClass

您可以从构造函数调用init

var myObj = new MyClass(2, true);
function MyClass(v1, v2) 
{
    // ...
    // pub methods
    this.init = function() {
        // do some stuff        
    };
    // ...
    this.init(); // <------------ added this
}

或者更简单地说,您可以将init函数的主体复制到构造函数的末尾。如果只调用一次init函数,那么实际上根本不需要它。

这更像是无法访问的代码

例如。如果变量x或函数x()在其调用此错误生成:

 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()方法将生成此,但setPlayerTwo()不会生成;这是因为CCD_ 15在被JS初始化之前被调用。