构造函数就是
初始化对象的函数,简单的说就是给刚刚创建的对象赋值属性等。
1、构造函数的作用
-> 直接量(字面量,literal)(123 {} []...) 缺点:无法复用
-> 工厂函数(factory)
function createPerson(name, age, gender){
return {
name: name,
age: age,
gender: gender
};
}
缺点:不易于维护区分,不易于继承的实现
-> 构造器(constructor)
常常将其称为构造函数、构造方法
// Pascal 命名规则(从第一个单词起首字母大写)
function Person(name, age, gender){
this.name = name;
this.age = age;
......
}
-> 在
js 中
对象 具有动态性
可以利用
对象.属性 或
对象['属性名'] 随意的给对象增加成员
同时可以利用
delete 运算符删除成员
2、构造函数的执行过程
->
构造函数的执行过程(本质):利用对象的动态性给对象增加成员
->
将下列代码的执行过程描述出来
function Person(name){
this.name = name;
this.sayHello = function(){};
}
var p = new Person('jim');
1> 首先执行 new 运算符,创建对象,该对象中什么也没有,是一个空对象(注意:空与空对象是两个概念)
2> 调用构造方法,将刚刚创建的对象引用传递给构造函数的this
3> 依次执行构造函数中的代码,如果出现 this.xxx = xxx 就是表示给刚刚创建的对象添加成员
4> 构造函数执行结束,默认返回 this(可以不写 return),将对象的引用赋值给 new 左边的等号左边的变量
5> 此时构造函数执行结束,构造函数内部的变量销毁