JS 中构造函数和普通函数的区别
1、构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写
2、构造函数和普通函数的作用不一样(构造函数用来新建实例对象)
3、调用方式不一样。
- 普通函数的调用方式:直接调用 person();
- 构造函数的调用方式:需要使用new关键字来调用 new Person();
4、this 的作用
构造函数,内部用this 来构造属性和方法,并指向实例
function Person(name) {
this.name = name;
this.sayFuck = function () {
console.log("Fuck")
};
};
5、执行流程
构造函数的执行流程(构造函数被 new 之后,会发生什么)
- 立刻在堆内存中创建一个新的对象
- 将新建的对象设置为函数中的this
- 逐个执行函数中的代码
- 将新建的对象作为返回值
普通函数
- 创建一个堆内存,形成一个独立的作用域,
- 逐个执行函数中的代码。
- 没有指定返回内容,默认是 undefined
6、返回的内容不一样
- 普通函数,因为没有返回值,所以为undefined
- 构造函数,构造函数会马上创建一个新对象,并将该新对象作为返回值返回
7、用 instanceof 可以检查一个对象是否是一个类的实例,是则返回true;
function Person(name) {
this.name = name;
this.sayFuck = function () {
console.log("Fuck")
};
};
let Child = new Person
console.log(Child instanceof Person); // true
console.log(Child instanceof Function); // false
console.log(Person instanceof Function); // true
console.log(Child instanceof Object); // true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
2020-03-17 Echarts 折线图y轴标签值太长时显示不全的解决办法 (Markdown使用示范文)