构造函数-基础知识总结------彭记(02)
1.什么是构造函数?
-简单点来说构造函数就是用来初始化对象的
2.构造函数的特征:
a)首写字母大写---规范
b)构造函数一般和new关键字一起使用
c)构造函数不需要手动的写返回值
3.构造函数的执行过程:
a)通过new关键字创建对象
b)调用构造函数将构造函数中的this指向创建出来的对象
c)在构造函数内部,通过this对对象新增属性和方法--初始化操作
d)自动返回创建的对象
4.注意事项:
a)如果在构造函数中写了return语句
i. 如果返回了简单数据类型,不会对构造函数的返回值造成影响,依然是构造函数中创建的对 象
ii. 如果返回了复杂数据类型,则会返回该复杂数据的类型
b)如果像调用普通函数一样调用构造函数
i. 函数中的this会指向window对象,通过this添加的所有属性和方法会添加到window对象上
ii. 如果函数中没有return语句,则返回undefined
4.传统构造函数存在的问题:
如下代码:
<script>
/*公共方法*/
function sayHi(){
console.log("大家好!");
}
function Person(name,age){
this.name=name;
this.age=age;
this.sayhi=sayHi;
}
var =per1=new Person('jack',20);
per1.sayhi();
var per2=new Person('rose',19);
per2.sayhi();
/*每一次创建对象都会将对象中的声明的属性都重新创建一次,造成浪费*/
var isEqual=per1.say()===per2.sayhi();//得到 false
console.log(isEqual);
/*解决问题的第一种方式:提取公共方法--将函数的定义放到构造函数以外,那么在调用构造函数的时候,不会重复的创建,而是直接调用定义好的函数(地址的引用),这样就解决了资源浪费的问题。*/
</script>
当然还有全局变量污染和代码结构混乱等问题,就要用到原型来解决了,下次再总结一下原型的知识

浙公网安备 33010602011771号