构造函数-------------------【凤、影】
普通函数和构造函数的区别 | |
1.执行不一样 | |
普通函数 : 直接函数名() | |
构造函数 : new 函数名() 函数 叫类 ; 采用的是大驼峰命名 | |
2.不需要手动创建一个对象,构造函数中,会自动给创建一个对象,构造函数中这个对象会自动的给我返回, | |
3.构造函数中this都是实例, | |
JS中内置类 : Array RegExp String Date Number Object... | |
类的本质就是一个函数 | |
优点 : 对象创建方式规范,是通过new关键字创建的 | |
能确定某个对象属于哪一个构造函数(类) | |
缺点 : | |
多个同类对象被创建时,相同的方法会被 重复创建 |
面向对象讲的就是类的概念;面向对象用构造函数实现 | |
1.在构造函数中new Fn() 执行,如果Fn不需要传值,后面的小括号可以省略; | |
2.this的问题,在类中出现的this.xxx = xxx中的this就是当前类的实例,而某一个属性值(方法),方法中的this | |
需要看方法执行的时候,前面是否有“.",才知道this是谁; | |
3.构造函数也有普通函数的一面,当函数执行的时候,var 变量, 只是当前函数的私有变量而已,他和我们实例没有关系, | |
只有this.xxx=xxx是给实例增加私有的属性和方法,才和我们的实例有关系; | |
4.在构造函数中,默认给返回一个对象, 如果咱们手动写return,return后面如果是基本数据类型,返回的仍然是实例; | |
return后面如果是对象;那么返回的是这个对象;会把实例覆盖 | |
5.检测某个实例是否属于某个类 instanceof,它是布尔值,如果是,返回的是true,否则的话返回的是false; | |
6.in 用来检测某个属性是否是这个对象的属性(不管是公有还是私有都能检测出来)。返回是布尔 | |
hasOwnProperty:用来检测某个属性是否是这个对象的私有属性,这个方法只能检测私有的; 返回是布尔 |