构造函数
创造对象的函数就是构造函数
使用 new 运算符,调用构造函数,可以实例化对象
1. 我们见过的构造函数
Date Object Array String Number RegExp ……
new Date(); new Object()
var date = new Date()
构造函数,构造对象,js规定,一个函数可以使用new运算符来调用,
创造出一个对象,过程是:
1) 使用 new 调用构造函数,构造函数在执行前会在内部创造一个隐秘的空间
2) 系统将这个构造函数中的this指向绑定到这个隐秘空间上,将this绑定的内容放进这个隐秘空间
3) 执行构造函数中的其他语句
4) 将隐秘空间返回给实例化的对象
2. 我们自己的构造函数
var obj = new Object();
console.log(obj);
function People() {
this.name = "小明";
this.age = 18;
this.sex = "男";
console.log(this.name); // 小明
}
var xm = new People();
console.log(xm);
People 是一个类 xm是这个类实例化出来的对象
构造函数每一次new都会返回一个全新的对象
同一个构造函数实例化出来的对象都是有相同属性群的对象,
可以作为一类东西所以people可以看做是一个类的定义
js其实没有类的概念,我们只能通过构造函数的四个步骤来模拟类创造对象
js语言是基于对象的语言,而不是面向对象的语言
构造函数为了与普通函数进行区别,一般情况下首字母大写,这是一个习惯,不是必须
构造函数People也叫作People类,小明是这个类的实例化对象
在构造函数使用new调用时,
在构造函数内部创建一个隐秘空间并让this指向这个空间,
再将多有的键值对放进这个空间,
最后将这空间赋值给实例化对象,所以构造函数中的this指向实例化对象