构造函数-基础知识总结------彭记(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>

 

当然还有全局变量污染和代码结构混乱等问题,就要用到原型来解决了,下次再总结一下原型的知识

posted @ 2017-08-10 15:44  依旧安好  阅读(171)  评论(0)    收藏  举报