构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写。普通函数使用驼峰式书写方式(首字母小写,第二个单词开始首字母大写)。
构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)
调用方式不一样。
a. 普通函数的调用方式:直接调用 person();
b.构造函数的调用方式:需要使用new关键字来调用 new Person();
构造函数的函数名与类名相同:Person( ) 这个构造函数,Person 既是函数名,也是这个对象的类名
构造函数的执行流程
A、立刻在堆内存中创建一个新的对象
B、将新建的对象设置为函数中的this(隐式绑定)
C、逐个执行函数中的代码
D、将新建的对象作为返回值
①var per =funciton(){};与②function per(){};的区别
别①需要等执行到这行赋值语句时,per函数才生效,否则是undefined
②则不需
普通函数
function person(){};
var per = person();
console.log(per); //没有返回值,所以返回defined
构造函数
function Person(){};
var per = new Person();
console.log(per); //构造函数会马上创建一个新对象,并将该新对象作为返回值返回
instanceof 作类型判断
function Person(name, age, gender){
this.name = name;
this.age = age;
this.gender = gender;
};
var per = new Person('张三', 30, '男');
console.log(per);
console.log(per.name);
console.log(per.age);
console.log(per instanceof Person); //true