Home > Article > Web Front-end > Detailed explanation of object factory function and constructor in JavaScript design pattern_Basic knowledge
The following is a detailed text explanation and code analysis to share with you the knowledge about the object factory function and constructor of the JavaScript design pattern.
Overview Using object literals, or dynamically adding new members to empty objects, is the simplest and easiest way to create objects. However, in addition to these two commonly used methods of object creation, JavaScript also provides other methods to create objects. 1).Use factory function to create objects. We can write a function. The function of this function is to create objects and convert them.
Overview
Using object literals, or dynamically adding new members to empty objects, is the simplest and easiest way to create objects.
However, in addition to these two commonly used methods of object creation, JavaScript also provides other methods to create objects.
1). Create objects using factory functions
We can write a function whose function is to create objects, which can be called the "object factory method".
c). Use the new keyword to call the object constructor
Copy code
The constructor is actually a function. The difference is that when calling it, a "new" keyword must be added. If this keyword is not added, the call to it is considered an ordinary function call.
//As a constructor called by a normal function, attributes added through this,
function Person (name) {
Work done by the constructor
1. Create a new object
2. Let this of the constructor refer to the newly created object
3. Execute the code in the constructor, which usually completes the work of adding properties to the new object
4. Return the newly created object reference to the outside world.
The difference between object constructor and object factory method
1. There is no explicit object creation code in the object constructor
2. The attributes and methods that the new object should have are added through this reference.
3. There is no return statement in the object constructor
Usually the first letter of the object constructor is set to uppercase to distinguish it from ordinary functions.
The constructor property of the object
a). Use the object factory function to create objects, and the constructor property of each object refers to Object()
The constructor attribute refers to the Object() function
console.info(person1.constructor === Object);
//true
b). Use the object constructor to create objects, and the constructor attribute of each object refers to this constructor
//true
So, you can use arguments.callee directly
Copy code
{
//If the caller forgets to add new, just add new and call again
}
this.prop = value;
}
//Testing
var obj1 = new MyObject(100);
console.info(obj1.prop);//100
var obj2 = MyObject(200);
console.info(obj2.prop); //200