在JavaScript中使用init()有什么用?

时间:2011-10-25 02:32:46

标签: javascript init

所以,我只想知道是否有人知道JavaScript中init()语句的特殊含义和用法,从来都不知道,有点像newb。

4 个答案:

答案 0 :(得分:103)

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

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

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

function init() {
  // initialisation stuff here
}

// elsewhere in code
init();

答案 1 :(得分:28)

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

第1步:创建一个函数说人..

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就像是你班上的构造函数调用。

答案 2 :(得分:0)

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函数。

答案 3 :(得分:0)

这更像是无法访问的代码

例如。如果变量 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() 不会生成; 这是因为 setPlayerOne() 在被 JS 初始化之前被调用。