Other methods: the factory method, constructor method, and prototype methods all have their own major defects. Here we will not introduce them one by one. For more information, see Chapter 3rd of this book.
1. Hybrid constructor/prototype
Function car (scolor, idoors, impg ){
This. Color = scolor;
This. Doors = idoors;
This. mpg = impg;
This. Drivers = new array ("Mike", "Sue ");
}
Car. Prototype. showcolor = function (){
Alert (this. Color );
};
VaR ocar1 = new car ("red", 4, 23 );
VaR ocar2 = new car ("blue", 3, 25 );
Ocar1.drivers. Push ("Matt ");
Alert (ocar1.drivers); // outputs "Mike, Sue, Matt"
Alert (ocar2.drivers); // outputs "Mike, Sue"
Advantage: it has the advantages of other methods, but has no disadvantages of other methods.
Deficiency: lack of encapsulation
2. Dynamic Prototype
Function car (scolor, idoors, impg ){
This. Color = scolor;
This. Doors = idoors;
This. mpg = impg;
This. Drivers = new array ("Mike", "Sue ");
If (typeof car. _ initialized = "undefined "){
Car. Prototype. showcolor = function (){
Alert (this. Color );
};
Car. _ initialized = true;
}
}
Advantage: encapsulation is better than the previous method
Not enough: it looks strange.
In short, the above two methods are currently the most widely used. Try to use them to avoid unnecessary problems.
[Sorting] the two most popular methods of defining classes in Javascript-xiaofang's Java blog-blogjava