Prototype is a method introduced in IE 4 and later versions for objects of a certain class, and the special thing is: it is a method for adding methods to objects of a class! This may sound a bit confusing, don’t worry, I will explain this special method through examples below:
First of all, we need to understand the concept of classes. JavaScript itself is an object-oriented language, and the elements involved are attached to a specific class based on their attributes. Our common classes include: array variables (Array), logical variables (Boolean), date variables (Date), structure variables (Function), numerical variables (Number), object variables (Object), string variables (String), etc. , and related class methods are also often used by programmers (here we need to distinguish between class attention and attribute sending methods), such as the push method of the array, the get series method of the date, the split method of the string, etc.,
But in the actual programming process, do you feel the shortcomings of the existing methods? The prototype method came into being! Below, we will explain the specific use of prototype from shallow to deep through examples:
1. The simplest example, understand prototype:
(1) Number.add(num): Function, add numbers
Implementation method: Number.prototype.add = function(num){return(this num);}
Test: alert((3).add(15)) -> Display 18
(2) Boolean.rev(): Function, negate the Boolean variable
Implementation method: Boolean.prototype.rev = function(){return(!this);}
Test: alert((true).rev()) -> Display false
Isn’t it very simple? This section just tells readers about another method and how this method is used.
2. Implementation and enhancement of existing methods, first introduction to prototype:
(1) Array.push(new_element)
Function: Add a new element to the end of the array
Implementation method:
Let’s further enhance him so that he can add multiple elements at once!
Implementation method:
It shouldn’t be difficult to understand, right? By analogy, you can consider how to delete any number of elements at any position by enhancing Array.pop (the specific code will not be detailed)
(2) String.length
Function: This is actually an attribute of the String class, but since JavaScript treats both full-width and half-width as one character, it may cause certain problems in some practical applications. Now we use prototype to make up for this shortcoming.
Implementation method:
Test: alert("EaseWe Spaces".cnLength()) -> Display 16
Some regular expression methods and full-width character encoding principles are used here, because they belong to two other larger categories , this article does not include any explanation, please refer to relevant materials.
3. To implement new functions, go deep into prototypes: What is used in actual programming is definitely not only the enhancement of existing methods, but also more functional requirements. Below I will give two examples of using prototypes to solve practical problems. Example:
(1) String.left()
Problem: Anyone who has used VB should know the left function, which takes n characters from the left side of the string. However, the disadvantage is that both full-width and half-width are regarded as one character, causing Equal-length strings cannot be intercepted in a mixed layout of Chinese and English
Function: intercept n characters from the left side of the string, and support the distinction between full-width and half-width characters
Implementation method:
Experiment:
alert("EaseWe Spaces".left(8)) -> Display EaseWe space
alert("EaseWe Spaces".left(8,true)) -> Display EaseWe Empty
This method uses the String.Tlength() method mentioned above, and some good new methods can also be combined between custom methods!
(2) Date.DayDiff()
Function: Calculate the interval between two date variables (year, month, day, week)
Implementation method:
Implementation method:
Copy code
Test: alert((4).fact()) -> Display 24
This method mainly shows that the recursive method is also feasible in the prototype method!
The object-oriented features that JavaScript can implement are:
·Public field
·Public Method
·Private field
·private field
·method overload
·constructor
·event
·single inherit
·Subclass overrides the attributes or methods of the parent class (override)
·Static attributes or methods (static member)
Example 1 (Types that allow adding behaviors in JavaScript): You can use proptotype on types to add behaviors to the type. These behaviors can only be manifested on instances of the type. The types allowed in JS are Array, Boolean, Date, Enumerator, Error, Function, Number, Object, RegExp, String