Detailed explanation of class creation and objects in Javascript
There are many ways to create classes and objects using Javascript. Let’s list them now: 1. Original creation method, 2. Factory method pattern , 3. Construction method pattern, 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:
<script type="text/javascript"> var person = new Object(); person.name="Amy"; person.sex="Woman"; person.show=function(){ document.write("name is: "+this.name+" ; sex is:"+this.sex); } person.show(); </script>
Original The creation method is difficult to accept for people who are familiar with Object-oriented. They always feel that properties and methods are 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 Javaprogramming feel uncomfortable. We can further "encapsulate" the original creation method. Please see the next step:
2. Factory method pattern:
<script type="text/javascript"> function personFactory(name,age,sex){ var ob=new Object(); ob.name=name; ob.age=age; ob.sex=sex; ob.show=function(){ document.write(ob.name+" "+ob.age+" "+ob.sex); } return ob; } var person=personFactory("Amy",21,"Woman"); person.show(); </script>
The factory method pattern looks more like a class. personFactory is The original creation method is encapsulated and the created object is returned to person ReferenceVariable. 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()function will be created. They can call the same show method. The optimization method is to The show is placed outside the factory, as follows:
<script type="text/javascript"> function show(){ document.write(this.name+" "+this.age+" "+this.sex); } function personFactory(name,age,sex){ var ob=new Object(); ob.name=name; ob.age=age; ob.sex=sex; ob.show=show; return ob; } var person=personFactory("Amy",22,"Woman"); person.show(); </script>
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:
<script type="text/javascript"> function person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; this.show=function(){ document.write(this.name+" "+this.age+" "+this.sex); document.write("<br>"); } } var per=new person("Amy",22,"Woman"); per.show(); </script>
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 the static method 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:
<script type="text/javascript"> function Person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; if(typeof Person.tag == "undefined"){ Person.prototype.show=function(){ document.write(this.name+" "+this.age+" "+this.sex); document.write("<br>"); } Person.tag=true; } } var per=new Person("Peter",22,"Man"); per.show(); </script>
A little trick is used here. When using new to 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("<br>"); }
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Here's how to convert a MySQL query result array into an object: Create an empty object array. Loop through the resulting array and create a new object for each row. Use a foreach loop to assign the key-value pairs of each row to the corresponding properties of the new object. Adds a new object to the object array. Close the database connection.

JavaScript tutorial: How to get HTTP status code, specific code examples are required. Preface: In web development, data interaction with the server is often involved. When communicating with the server, we often need to obtain the returned HTTP status code to determine whether the operation is successful, and perform corresponding processing based on different status codes. This article will teach you how to use JavaScript to obtain HTTP status codes and provide some practical code examples. Using XMLHttpRequest

In PHP, an array is an ordered sequence, and elements are accessed by index; an object is an entity with properties and methods, created through the new keyword. Array access is via index, object access is via properties/methods. Array values are passed and object references are passed.

In C++, there are three points to note when a function returns an object: The life cycle of the object is managed by the caller to prevent memory leaks. Avoid dangling pointers and ensure the object remains valid after the function returns by dynamically allocating memory or returning the object itself. The compiler may optimize copy generation of the returned object to improve performance, but if the object is passed by value semantics, no copy generation is required.

PHP functions can encapsulate data into a custom structure by returning an object using a return statement followed by an object instance. Syntax: functionget_object():object{}. This allows creating objects with custom properties and methods and processing data in the form of objects.

The Request object in PHP is an object used to handle HTTP requests sent by the client to the server. Through the Request object, we can obtain the client's request information, such as request method, request header information, request parameters, etc., so as to process and respond to the request. In PHP, you can use global variables such as $_REQUEST, $_GET, $_POST, etc. to obtain requested information, but these variables are not objects, but arrays. In order to process request information more flexibly and conveniently, you can

Introduction to the method of obtaining HTTP status code in JavaScript: In front-end development, we often need to deal with the interaction with the back-end interface, and HTTP status code is a very important part of it. Understanding and obtaining HTTP status codes helps us better handle the data returned by the interface. This article will introduce how to use JavaScript to obtain HTTP status codes and provide specific code examples. 1. What is HTTP status code? HTTP status code means that when the browser initiates a request to the server, the service

The difference between Java heap and stack and application scenario analysis require specific code examples. In Java programs, heap and stack are two commonly used data structures, and they assume different roles and functions in memory. Understanding the difference between heap and stack is crucial to writing efficient Java programs. First, let's take a look at the Java heap. The heap is an area used to store objects. All objects created in the program are stored in the heap. The heap is where memory is dynamically allocated and released while the program is running. It is not subject to any restrictions and can be automatically allocated and released as needed.
