1. Constructor and instantiationWhen our programming is object-oriented, the first process is abstraction => then instantiation. For example, we abstract a person and I know the basic information of the person. Name, age, gender, etc. We abstract first, and after the abstraction is completed, we instantiate. 2. What is the relationship between constructor and instantiation?//This custom constructor is in the abstract function Person(name,age,sex){ this.name=name; this.age=age; this.sex=sex; this.say=function(){ console.log("My name is",name) } } // This process is instantiation let per1=new Person('司藤',300,'女'); per1.say(); //Call //let per1=new Person('司藤',300,'女'); Through the above line of code.
console.log( per1.constructor===Person ) //Returns true
3. Is per1.say equal to per2.say?function Person(name,age,like) { this.name=name; this.age=age; this.like=like; this.say=function(){ console.log('I can skip meals'); } } var per1=new Person("司藤",300,'玩'); var per2=new Person('白浅','10000','玩'); per1.say(); per2.say(); console.log( per1.say == per2.say ) //false 4. per1.say is not equal to the conclusion drawn by per2.say
5. Example code problem5.1 Problems with the codefunction Person(name,age,like) { this.name=name; this.age=age; this.like=like; this.say=function(){ console.log('I can skip meals'); } }; for (var index = 0; index < 100; index++) { var per=new Person("司藤",300,'玩'); per.say(); }
Can we optimize it? 5.2 Optimize code to solve space wastefunction comSay(){ // Execute the same logic console.log('I can skip meals') }; function Person(name,age,like) { this.name=name; this.age=age; this.like=like; this.say=comSay; //Do not add brackets}; var per1=new Person("司藤",300,'玩'); var per2=new Person('白浅','10000','玩'); console.log( per1.say==per2.say ) //true This way we save space. Each time it is called, it is the same method. 5.3 Using this method, we can also use the prototype methodfunction Person(name,age,like) { this.name=name; this.age=age; this.like=like; }; Person.prototype.comSay=function(){ console.log('I can skip meals') } var per1=new Person("司藤",300,'玩'); var per2=new Person('白浅','10000','玩'); console.log( per1.comSay==per2.comSay ) //true // We can also solve data sharing through prototypes
This concludes this article on the relationship between JS constructors and instantiations and the introduction of prototypes. For more information on the relationship between JS constructors and instantiations and the introduction of prototypes, please search previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: Introduction to the use of this in HTML tags
>>: Detailed examples of how to use the box-shadow property in CSS3
Table of contents Business requirements: Solution...
Disable SeLinux setenforce 0 Permanently closed: ...
The company had a well-configured server that was...
It’s National Day, and everyone is eager to celeb...
A database index is a data structure whose purpos...
Table of contents Environmental Description Docke...
Table of contents 1. What is a closure? 1.2 Memoi...
Original Intention The reason for making this too...
background Indexes are a double-edged sword. Whil...
Preface Recently I encountered a deadlock problem...
Table of contents Importing JavaScript 1. Interna...
This article shares the installation tutorial of ...
1. Introduction to VMware vSphere VMware vSphere ...
Table of contents Preface Browser compiled versio...
Table of contents The principle and function of l...