JavaScript中init()用法的用途是什么?


74

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


1
init只是启动的简写。通常,它用于创建“ new Object()”。像jQuery中的init()函数一样,它返回一个新的jQuery对象。
石灰

3
@LiamWilliam -初始化
UpTheCreek

Answers:


130

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() })
Jeff

1
@Jeff-还是这样吗?在您的示例中,bEvent必须引用具有init() 方法的对象,您应该看到该方法是在未显示的函数体内创建的。
nnnnnn 2015年

32

在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就像对类的构造函数调用。


1

注意 构造函数名称应以大写字母开始从普通的功能区分开来,例如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如果只调用一次,则根本不需要真正拥有一个函数。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.