一、什么是构造函数?
在JavaScript中,用new关键字来调用的函数,称为构造函数,构造函数首字母一般大写
二、使用步骤
1.常用的构造函数
1、常用的构造函数:
1. var arr = []; 为 var arr = new Array();
2. var obj = {} 为 var obj = new Object();
3. var date = new Date();
2.对象实例化方式
代码如下:
var Car = {
color: 'red',
brand: '奔驰'
}
console.log(Car.color)
构造函数方式
function Car(brand, color) {
this.brand = brand
this.color = color
this.tyre = function () {
console.log('我有三个轮子')
}
}
var c1 = new Car('三蹦子', '蓝色')
console.log(c1)
c1.tyre()
注意事项
创造的Car可以称之为构造函数,也可以称之为类,构造函数就是类。
c1,c2均为Car构造函数的实例对象。
Car构造函数中的this指向Car的 实例对象即new Car()出来的对象
创建实例对象时必须带new
构造函数首字母大写,这是规范,请遵守它。如:Number() Array()
constructor:这是实例对象都自动含有的属性,指向他们的构造函数
构造函数的问题
构造函数方法虽然好用,但是存在浪费内存的问题。对于每一个实例对象,tyre都是一样的内容,每一次生成一个实例,都必须 生成重复的内容,多占用内存。既不环保也缺乏效率。
prototype原型
js中,每一个构造函数都又有一个prototype
属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数的实例继承。这意味着,我们可以把那些不变的属性和方法,直接定义在prototype对象上。实例化的__proto__
指向构造函数的原型对象。
总结:
- 构造函数有一个原型对象,通过pototype获取
- 构造函数创建 实例对象后,每个对象都有一个私有的
__proto__
属性,指向构造函数的原型对象