所以,我只想知道是否有人知道JavaScript中init()语句的特殊含义和用法,从来都不知道,有点像newb。
答案 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 初始化之前被调用。