javascript高级面向对象(13)--构造函数的执行过程

Jacklovely      2022-02-09     145

关键词:

说明(2017-4-2 21:50:45)

一、构造函数是干什么用的:

1. 初始化数据的。

2. 在js给对象添加属性用的,初始化属性值用。

二、创建对象的过程:

1. 代码:var p = new Person();

2. 首先运算符new创建了一个对象,它类似于{},是一个“没有任何成员”的对象。

  * 使用new创建对象,对象的类型就是创建它的构造函数名(如,Person类型)。

  * 使用{}无论如何都是Object类型,相当于“new Object()”。

3. 然后调用构造函数为其初始化成员。

  *构造函数在调用的一开始,有一个赋值操作,即this=刚刚创建出来的对象。

  *因此在构造函数中,this表示刚刚创建出来的对象。

4. 在构造函数中,利用对象的动态特性,为对象添加成员。

三、分析代码,写出每一步的实现过程:

  在第2行打断点,但执行的时候是直接从第7行开始,因为7行是赋值,而2行只是函数声明。逐语句运行,在watch里可以看到this在慢慢增加属性,最后p具有了三个属性。

1 <script type="text/javascript">
2     function Person(name, age, gender){
3         this.name = name;
4         this.age = age;
5         this.gender = gender;
6     }
7     var p = new Person("张三", 19, "男");
8 </script>

 

javascript面向对象--创建对象

1/创建对象:2//最基本的Object构造以及字面量法3//一、工程模式创建:使用参数传值在构造4functioncreateObject(name,age,job){5varo=newObject();6o.name=name;7o.age=age;8o.job=job;9o.sayName=function(){10alert(this.name);11};12returno;13}14va 查看详情

继承性—javascript面向对象高级

##继承性##  js不是一门完全是面向对象的语言,它没有专门实现对象继承的机制,但是可以通过语法层面实现对象的继承,要实现继承可以通过以下几种方式实现继承。 (这里也可以通过ES6中的class语法实现继承,更接... 查看详情

原型和原型链—javascript面向对象高级

原型 1.原型有什么用:js是用原型来实现继承 2.原型是:每一个对象都有其原型对象__proto__,这个原型对象指向构造它的构造函数的原型属性prototype. ##一、函数和对象的关系## 1.函数是对象的一种,instanceof可以判断... 查看详情

javascript面向对象编程:构造函数的继承

原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html总结对象之间继承的5种方法:比如,现在有一个"动物"对象的构造函数。  functionAnimal(){    this.species="动物";  }还有一个"猫"对象的构造函数。... 查看详情

javascript面向对象:构造函数的继承

这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。今天要介绍的是,对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。  functionAnimal(){    this.species="动物"; ... 查看详情

javascript面向对象编程:构造函数的继承

作者: 阮一峰日期: 2010年5月23日这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。今天要介绍的是,对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。 ... 查看详情

javascript面向对象:非构造函数的继承

这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。  varChinese={  ... 查看详情

javascript---面向对象

面向对象  function Person(){//构造函数,构造函数中有一个prototype属性,这个属性是一个指针,指向它的原型对象(Person.protype)。this.name=‘Tom‘;}varp1=newPerson()//p1就是实例。实例一创造出来就具有constructor属性(指向构造函数)... 查看详情

javascript面向对象编程:非构造函数的继承

  什么叫非构造函数的继承?比如,现在有一个对象,叫做"中国人"。  varChinese={    nation:‘中国‘  };还有一个对象,叫做"医生"。  varDoctor={    career:‘医生‘  }请问怎样才能让"医生"去继承"中国人"... 查看详情

javascript面向对象编程:非构造函数的继承

转载自:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html 一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。  varChinese={    nation:‘中国‘  };还有一个对象,叫做"医生"... 查看详情

javascript面向对象编程2:构造函数的继承

这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例。对象之间的"继承"的五种方法。比如,现在有一个"动物"对象的构造函数。functionAnimal(){this.species="动物";}还有一个“猫"对象的构造函数。f... 查看详情

javascript面向对象之函数构造器的理解

1,在使用函数创建类时,函数本身也被称为该类的构造器,该类的构造器方法,该类的构造方法,该类的构造函数等等。2,注意构造器方法是没有返回值的,当创建该类的实例时,必须调用该类的构造方法。3,获取构造器方法... 查看详情

javascript面向对象编程:非构造函数的继承

作者: 阮一峰日期: 2010年5月24日这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个... 查看详情

javascript面向对象编程:非构造函数的继承

今天是最后一个部分,介绍不使用构造函数实现"继承"。一、什么是"非构造函数"的继承?比如,现在有一个对象,叫做"中国人"。1 varChinese={2    nation:‘中国‘3  };还有一个对象,叫做"医生"。 1 varDoctor={2    ... 查看详情

javascript面向对象编程:非构造函数的继承

原文链接:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html作者: 阮一峰这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承"。今天是最后一个部分,介绍不使用构造函数实现"... 查看详情

javascript--面向对象(工厂模式,构造函数,原型模式)

一、前言上一篇介绍了对象的基本简单的概念和对象的数据属性和访问器属性,以及对这两种属性类型的一些操作,接来说一下与创建对象的模式。二、创建对象的方式(1)工厂模式这种模式就是通过创建一个Object对象,并将... 查看详情

javascript面向对象(收集整理)

(1)封装  首先理解构造函数:所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。  functionCat(name,color){    this.name=name; ... 查看详情

js面向对象笔记二

...导航,《JS面向对象笔记一》, 参考书籍:阮一峰之《JavaScript标准参考教程》一、构造函数和new命令二、this关键字三、构造函数和new命令四、构造函数和new命令五、构造函数和new命令六、构造函数和new命令七、构造函数和new... 查看详情