JavaScript 普通函数和构造函数

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));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值