JavaScript 普通函数和构造函数
构造函数:用于构造新的自定义类型对象的函数(对象模板),相当于class。
构造函数就是构造一个对象的函数(对象模板);也可以说是构造一个对象并将其返回的函数。
- 构造函数与普通函数的区别:
1、定义时形式上的区别:构造函数名称首字母大写,普通函数名称首字母小写
2、调用上的本质区别:构造函数使用new关键字调用,普通函数则不用new关键字调用
3、返回值不同:普通函数的返回值由return语句确定(没有return语句时,返回值为undefined),构造函数的返回值是已经初始化完毕后的object。 - 构造函数与普通函数的共性:
函数体都要逐句执行一次:普通函数在被调用时执行一次,构造函数在创建对象时执行一次。
看似逻辑混乱,但是真实反映构造函数与普通函数关系并可以执行的js代码:
function Student(name, age, sex, score) {
// 对象的属性
this.name = name;
this.age = age;
this.sex = sex;
this.score = score;
// 对象的方法
this.sayHi = function () {
console.log("大家好, 我是" + this.name);
};
return "普通函数调用方式的返回值";
}
let student = new Student("zhangsan111", 18, 1, 100);
console.log(Student);
console.log(student.name);
console.log(typeof Student); // function
console.log(typeof student); // object
console.log(student instanceof Student); // true
console.log(Student instanceof Object); // true
console.log(Student instanceof Student); // false
console.log(Student("zhangsan111", 18, 1, 100));