What are the disadvantages of javascript constructor methods

WBOY
Release: 2022-09-30 16:40:55
Original
1255 people have browsed it

The disadvantage of the JavaScript constructor is that every time an object is instantiated, the properties and methods will be copied; if there are the same methods between instances, although the properties and methods defined in the constructor are accessible, However, each instance is copied, which will cause a waste of system resources.

What are the disadvantages of javascript constructor methods

The operating environment of this tutorial: Windows 10 system, JavaScript version 1.8.5, Dell G3 computer.

What are the disadvantages of the JavaScript constructor method

The advantage is that the object can be identified through instanceof. The disadvantage is that every time an object is instantiated, the properties and methods will be copied again

function CreateObj(uName) {
              this.userName = uName;
              this.showUserName = function () {
              return this.userName;
            }
        }
  
var obj1 = new CreateObj('ghostwu');
var obj2 = new CreateObj('卫庄');
  
console.log( obj1.showUserName === obj2.showUserName ); //false
Copy after login

From the above execution results, we can see that obj1.showUserName and obj.showUserName are not the same [in js, the reference type compares the address, the function is a reference type], but there are two different The memory address of

, because the attributes of each object are different, there is no problem with this, but the methods execute the same code, so there is no need to copy, there are multiple copies, which wastes memory. This is Disadvantages

Extended knowledge

Constructor: If a function is used to initialize (using the new operator) a newly created object, we call it For the constructor (constructor)

function Person(){
    this.name = "zqq";
    this.age = 28;
}
var p = new Person();
Copy after login

When the constructor is called with new (execution var p = new Person()), the following will happen inside the function:

1. Create an empty object

var p = {};
Copy after login

2.This variable points to the object p

Person.call(p)
Copy after login

3.p inherits the prototype of the constructor Person()

p.__proto__ = Person.prototype
Copy after login

4. Execute the constructor Person() Code

The difference between constructor and ordinary function:

1. The constructor is called using the new keyword; ordinary functions are not called with the new keyword;

var p = new Person();
var p = Person();
Copy after login

2. The this keyword can be used inside the constructor; it is not recommended to use this inside a normal function, because this points to the window global object at this time, so some global variables or functions will be added to the window unintentionally

Inside the constructor, this points to the constructed new object

Inside the ordinary function, this points to the window global object

3. The constructor does not return a return value by default; Ordinary functions generally have a return value

The constructor will return this by default, which is the new instance object

If an ordinary function does not have a return value, it will return undefined

If If return is used, the return value will vary depending on the type of return value

[Related recommendations: javascript video tutorial, web front-end]

The above is the detailed content of What are the disadvantages of javascript constructor methods. 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
Popular Tutorials
More>
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!