前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >js中构造函数和普通函数的区别_函数声明和函数定义

js中构造函数和普通函数的区别_函数声明和函数定义

作者头像
全栈程序员站长
发布于 2022-10-04 12:33:58
发布于 2022-10-04 12:33:58
3.2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

1、构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写

2、构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)

3、调用方式不一样。

a. 普通函数的调用方式:直接调用 person();

b.构造函数的调用方式:需要使用new关键字来调用 new Person();

4、构造函数的函数名与类名相同:Person( ) 这个构造函数,Person 既是函数名,也是这个对象的类名

5、内部用this 来构造属性和方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function Person(name,job,age)
{
     this.name=name;
     this.job=job;
     this.age=age;
     this.sayHi=function()
         {
          alert("Hi")
         }
 } 

5、构造函数的执行流程

A、立刻在堆内存中创建一个新的对象

B、将新建的对象设置为函数中的this

C、逐个执行函数中的代码

D、将新建的对象作为返回值

6、普通函数例子:因为没有返回值,所以为undefined

7、构造函数例子:构造函数会马上创建一个新对象,并将该新对象作为返回值返回

8、用instanceof 可以检查一个对象是否是一个类的实例,是则返回true; 所有对象都是Object对象的后代,所以任何对象和Object做instanceof都会返回true

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196049.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月8日 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端学习(37)~js学习(十四):对象的创建
第一次看到这种工厂模式时,你可能会觉得陌生。如果简化一下,可以写成下面这种形式,更容易理解:(也就是,利用new Object创建对象)
Vincent-yuan
2020/03/18
1.6K0
【说站】js如何自定义构造函数创建对象
1、函数内部不需要new构建函数的过程,直接用this代替对象写属性和方法,也不需要return返回值。比工厂方法更方便。
很酷的站长
2022/11/24
2.7K0
【说站】js如何自定义构造函数创建对象
js之工厂构造函数模式
本文为译文,初次翻译,如有误导,请多多包含,如阅读英文,可直接扫文末二维码阅读即可,若想读另外一篇可戳链接理解构造函数与原型对象
itclanCoder
2020/10/28
1.2K0
js之工厂构造函数模式
详解js原型,构造函数以及class之间的原型关系
含义: 是一个函数的属性,这个属性是一个指针,指向一个对象 作用: 构造函数调用 访问该构造函数所关联的原型对象
念念不忘
2019/03/29
1.7K0
详解js原型,构造函数以及class之间的原型关系
JavaScript 学习-7.函数定义的几种方式
之前学习变量的时候,学到一个词:”声明提升”,函数声明也会被提升。 “hoisting(声明提升)”:函数声明和变量声明总是会被解释器悄悄地被”提升”到方法体的最顶部。
上海-悠悠
2022/05/17
8890
谈谈ES6语法(汇总下篇)
ES2017标准引入了async函数,使得异步操作更加方便。async函数是Generator函数的语法糖。不打算写Generator函数,感兴趣的话可以看文档。与Generator返回值(Iterator对象)不同,async返回的是一个Promise对象。
Jimmy_is_jimmy
2019/07/31
3940
Java 构造函数的详解
我们人出生的时候,有些人一出生之后再起名字的,但是有些人一旦出生就已经起好名字的。那么我们在java里面怎么在对象一旦创建就赋值呢?
全栈程序员站长
2022/09/08
5690
前端基本数据类型_js简单数据类型
Number: 数字(数字可以带小数点也可以不带)、NaN、Infinity String: 字符串可以是引号中的任意文本。双引号单引号都可以。也可以使用ES6的模板字符串 “ 如:
全栈程序员站长
2022/11/03
1.3K0
JavaScript进阶教程(4)-函数内this指向解惑call(),apply(),bind()的区别
函数声明如果放在if-else的语句中,在IE8的浏览器中会出现问题,所以为了更好的兼容性我们以后最好用函数表达式,不用函数声明的方式。
AlbertYang
2020/09/08
6300
JavaScript进阶教程(4)-函数内this指向解惑call(),apply(),bind()的区别
前端day19-JS高级(函数调用的上下文模式)学习笔记
1.1复习函数三种调用方式:普通函数 对象方法 构造函数(理解this关键字作用:谁调用这个函数,this指向谁)
帅的一麻皮
2020/05/10
1.2K0
JS篇(009)-javascript 对象的几种创建方式
这行代码创建了 Object 引用类型的一个新实例,然后把实例保存在变量 Person 中。 第二种:使用对象字面量表示法
齐丶先丶森
2022/05/12
1.6K0
JS面向对象的程序设计
http://www.cnblogs.com/gaojun/p/3386552.html
bear_fish
2018/09/19
1.3K0
JavaScript之面向对象学习七(动态原型模式、寄生构造函数模式、稳妥构造函数模式创建自定义类型)
一、动态原型模式 在面向对象学习六中的随笔中,了解到组合构造函数模式和原型模式创建的自定义类型可能最完善的!但是人无完人,代码亦是如此! 有其他oo语言经验的开发人员在看到独立的构造函数和原型时,很可能会感到非常困惑。因为对象在其他oo语言中往往是封装在一块的,而构造函数确是和原型分开的,所以并没有真正意义上的封装,所以动态原型模式正是致力与解决这一问题的一个方案! 动态原型模式将所有的信息都封装在构造函数中(包括原型和实例属性),通过在构造函数中实例化原型(仅在必要的情况下)实现封装,又保持了同时使用构造
郑小超.
2018/01/24
1.1K0
前端day17-JS高级(原型对象)学习笔记
01-面向对象编程 1.1-面向对象编程介绍 1.理解什么是面向对象编程 面向对象不是一门技术,而是一种解决问题的思维方式 面向对象的本质是对面向过程的一种封装 2.理解什么是对象 对象的本质是程序代码与现实世界沟通的一座桥梁。它有两种函数 对象:是一种数据类型(存储数据的容器),以键值对的形式存储数据 对象:对现实世界实物的一种抽象。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</t
帅的一麻皮
2020/05/07
4990
前端day17-JS高级(原型对象)学习笔记
JS进阶(1) —— 人人都能懂的构造函数
大家都知道原型和原型链是 JavaScript 中最经典的问题之一,而构造函数又是原型和原型链的基础,所以先了解清楚构造函数以及它的执行过程可以更好地帮助我们学习原型和原型链的知识。
全栈程序员站长
2022/07/20
9650
JS进阶(1) —— 人人都能懂的构造函数
前端day10-JS学习笔记(数组、函数、对象)
3.变量取值: 函数名 (不会执行函数体代码,只是以字符串形式将变量中存储的东西打印出来而已)
帅的一麻皮
2020/04/09
1.8K0
前端day10-JS学习笔记(数组、函数、对象)
js构造函数的理解
作为原型和原型链的基础,先了解清楚构造函数以及它的执行过程才能更好地帮助我们学习原型和原型链的知识。 1、什么是构造函数 2、为什么要使用构造函数? 3、构造函数的执行过程 4、构造函数的返回值 5、构造函数首字母必须大写吗? 6、不用new关键字,直接运行构造函数,是否会出错?如果不会出错,那么,用new和不用new调用构造函数,有什么区别?
ZEHAN
2020/09/23
2.2K0
理解构造函数与原型对象
在Es6之前,由于javascript没有对类的支持,也就是说它并不具备如传统后台语言(比如java)拥有类的功能,所谓类就是用来描述事物中的属性和行为的,类的特征是由成员组成的,而属性对应的就是类中的成员变量,而方法对应的就是类中的成员方法,这是传统oop语言的描述,然而在javascript中,虽没有类的概念,但是它往往是通过构造函数和原型对象来给对象模拟与类相似的功能,但是这些相似的功能并不一定表现的与类完全一致,其实创建构造函数的过程,就是创建模板的过程,类一定程度上与此相似,创建多个共享的特定的属性和方法,用于生成对象的饼干工具,主要目的是提高代码的可复用性,也提高了代码的性能,有时候,在我们无意间就已经在使用了这些特性,什么构造函数,原型,个人觉得,初次理解起来很是抽象,自己也是稀里糊涂的觉得实际开发中到底有什么卵用,也许后者在不涉及复杂的功能需求时,平时用得不多,显然Es6中已新增了类class的功能,越来越严格,越来越像后端语言,Es6,Es7新增的诸多方法也越来越强大,但是我觉得理解构造函数与原型对象还是有必要的,是js面向对象编程的基础,今天就我的学习和使用跟大家分享一下学习心得,初学者学习笔记心得,欢迎路过的老师多提意见和指正..
itclanCoder
2020/10/28
1.1K0
理解构造函数与原型对象
《JavaScript高级程序设计》读书笔记
数据传送率的单位.意思是每秒钟多少千字节.比如20Kbit/s就是每秒钟20000个字节.一般上网、下载的速度用这个单位.adsl宽带上网下载速度大概为30-50Kbit/s.
用户3880999
2023/04/13
6590
《JavaScript高级程序设计》读书笔记
详解JavaScript对象继承方式
其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。因为构造函数只是一个函数,所以可使 Parent 构造函数 成为 Children 的方法,然后调用它。Children 就会收到 Parent 的构造函数中定义的属性和方法。例如,用下面的方式定义 Parent 和 Children:
用户6167509
2019/09/04
4480
推荐阅读
相关推荐
前端学习(37)~js学习(十四):对象的创建
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文