JavaScript 中的 init()
函数是什么意思和用途?
JavaScript 中的 init()
函数是什么意思和用途?
JavaScript没有内置的init()
函数,也就是说,它不是语言的一部分。但是,在许多编程语言中,个别程序员会创建自己的init()
函数来进行初始化操作,这并不少见。
一个特定的init()
函数可以用于初始化整个网页,在这种情况下,它可能会从 document.ready 或 onload 处理中调用,或者它可能是用来初始化特定类型的对象,或者......你可以命名。
任何给定的init()
函数具体执行什么操作取决于编写它的人需要它执行什么操作。有些类型的代码不需要任何初始化。
function init() {
// initialisation stuff here
}
// elsewhere in code
init();
var bEvent = function () {...}();
然后,在此之后,$(function () { // Launch functions bEvent.init() })
- JeffbEvent
必须引用一个具有 init()
方法的对象,你应该能看到它是在函数体内创建的,只是你没有展示出来。 - nnnnnn在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()
不会生成;
这是因为 JS 在初始化之前调用了 setPlayerOne()
。