5. Define a class using constructor + prototype. The same constructor can define multiple types.
Copy codeThe Code is as follows:
/**
* $ Define write tool function 2
* @ Param {Object} constructor
* @ Param {Object} prototype
*/
Function $ define (constructor, prototype ){
Var c = constructor | function (){};
Var p = prototype | {};
Return function (){
For (var recognition in p)
Arguments. callee. prototype [recognition] = p [recognition];
C. apply (this, arguments );
}
}
Similar to the fourth method, the constructor and prototype object are still used to define two classes.
Copy codeThe Code is as follows:
// Constructor
Function Person (name ){
This. name = name;
}
// Prototype object
Var proto = {
GetName: function () {return this. name },
SetName: function (name) {this. name = name ;}
}
// Define two classes
Var Man = $ define (Person, proto );
Var Woman = $ define (Person, proto );
Console. log (Man = Woman); // false, the same Constructor (Person) defines different classes