你好我想知道这一行之间的区别:
var MyClass={
init:function(){
}
}
和
var Myclass=function(){};
Myclass.prototype.init=function(){}
答案 0 :(得分:1)
var MyClass={
init:function(){
}
}
定义了一个名为MyClass
的对象,其成员函数为init
。这是对象字面符号。
这个对象只有一个实例;你不能创建一个new
。
你只能说例如
MyClass.init();
你不能说
var foo = new MyClass(); (this will cause an error)
另一方面,
var Myclass=function(){};
Myclass.prototype.init=function(){}
不同;它定义了一个“类”(或者可以调用的构造函数),它有一个函数init
,但你可以创建多个实例;每个实例都有init()函数。
var foo = new Myclass();
var bar = new Myclass();
foo.init();
bar.init();
所以你使用它真的取决于你需要它;如果你正在制作一个具有一些实用功能的对象,或者可能代表一个只需要一个副本的服务,那么第一个就是好的;而如果您需要能够创建多个实例,因为每个实例的数据可能需要不知不觉地更改,请使用第二个。