Detailed explanation of class creation and objects in Javascript

黄舟
Release: 2017-05-31 10:05:04
Original
1060 people have browsed it

There are many ways to create classes andobjectsusingJavascript. Let’s list them now: 1. Original creation method, 2. Factory method pattern , 3.Construction methodpattern, 4. Dynamic prototype method. Let's take a detailed look at examples through examples

Now we summarize several methods of creating classes and objects in Javascript:

1. Original creation method:

Copy after login

Original The creation method is difficult to accept for people who are familiar withObject-oriented. They always feel thatproperties and methodsare not tightly encapsulated. This kind of encapsulation is based on "object name" + "." method, indicating that the properties and methods following the object name are things owned by this object. This object (for example: person) is the encapsulated result. You can continue to add methods and properties, for example, add the age attribute: person.age=23; This creation method will make people familiar with Javaprogrammingfeel uncomfortable. We can further "encapsulate" the original creation method. Please see the next step:

2. Factory method pattern:

Copy after login

The factory method pattern looks more like a class. personFactory is The original creation method is encapsulated and the created object is returned to personReferenceVariable. Person can then reference the created object, but it is not perfect: you can Oncecreate an object, and use the object to call the show() method, a new show()functionwill be created. They can call the same show method. The optimization method is to The show is placed outside the factory, as follows:

Copy after login

Functionally speaking, the above code solves the problem of function reuse, but the presentation method is not like creating an object, and people familiar with Java still feel uncomfortable. Please see the next step:

3. Constructor mode:

Copy after login

The creation method of the above code is almost the same as the creation method of Java classes and objects. It encapsulates the properties and methods of the class. Then use the new keyword to create and return an object. Isn't this the process of creating classes and objects in Java? Yes, it is this process, but it can also be optimized. The object created in this way will be created immediately when the show method is called. For a show function, can we create a method common to all objects? Just like thestaticmethod in a Java class, all objects use the same static method, and the answer is yes. Please see the next step:

4. Dynamic prototype method:

Copy after login

A little trick is used here. When using newto create an object, the Person function block will be executed. ifJudgment statement, the order is from top to bottom. Of course, the tag variable is not defined at the beginning, so the content in the if statement block is executed:

Person.prototype.show=function(){ document.write(this.name+" "+this.age+" "+this.sex); document.write("
"); }
Copy after login

The meaning of this content is to create a class belonging to the class Person's show method, please note that it is a class method, which is equivalent to the static modified method in Java, rather than a method of a single object. In this way, all objects can call the same method, and there is no need to call it on different objects each time. The method is to create your own show function, which saves space and time. Wouldn't this method be better? Let me explain here, the properties and methods constructed in the "class name.prototype.property/method" method are equivalent to the variables or methods modified with static in Java. They belong to the entire class, not a single object, that is, all objects are shared.

The above is the detailed content of Detailed explanation of class creation and objects in Javascript. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!