当前位置: 首页 > ops >正文

JavaScript进阶(十)

第三部分:JavaScript进阶

目录

第三部分:JavaScript进阶

五、深入对象

5.1 创建对象三种方式

1. 利用对象字面量创建对象

2. 利用new Object创建对象

3. 利用构造函数创建对象

5.2 构造函数

5.3 实例成员&静态成员

六、内置构造函数

6.1 Object

Object.keys

Object.values

Object.assign

6.2 Array

数组常见实例方法-核心方法

数组常见方法-其他方法

数组常见方法-伪数组转换为真数组

6.3 String

6.4 Number

七、综合案例

五、深入对象

5.1 创建对象三种方式

目标:了解创建对象有三种方式

1. 利用对象字面量创建对象


 

2. 利用new Object创建对象


 

3. 利用构造函数创建对象

5.2 构造函数

目标:能够利用构造函数创建对象

构造函数:是一种特殊的函数,主要用来初始化对象

使用场景:常规的{...}语法允许创建一个对象。比如我们创建了佩奇的对象,继续创建乔治的对象还需要重新写一遍,此时可以通过构造函数快速创建多个类似的对象


 

构造函数在技术上是常规函数。

不过有两个约定:

  1. 它们的命名以大写字母开头。
  2. 它们只能由"new"操作符来执行。
     

构造函数语法:大写字母开头的函数

创建构造函数:


 

说明:

  1. 使用new关键字调用函数的行为被称为实例化
  2. 实例化构造函数时没有参数时可以省略()
  3. 构造函数内部无需写return,返回值即为新创建的对象
  4. 构造函数内部的return 返回的值无效,所以不要写return
  5. new Object()   new Date ()也是实例化构造函数
     

总结:

1. 构造函数的作用是什么?怎么写呢?

  • 构造函数是来快速创建多个类似的对象
  • 大写字母开头的函数

2. new关键字调用函数的行为被称为?

  • 实例化

3. 构造函数内部需要写return吗,返回值是什么?

  • 不需要
  • 构造函数自动返回创建的新的对象
     

练习-利用构造函数创建多个对象

需求:
①写一个Goods构造函数
②里面包含属性  name商品名称  price价格  count 库存数量
③实例化多个商品对象,并打印到控制台,例如
                                        小米        1999         20
                                        华为        3999         59
                                        vivo        1888         100

实例化执行过程

说明:

  1. 创建新的空对象
  2. 构造函数this指向新对象
  3. 执行构造函数代码,修改this,添加新的属性
  4. 返回新对象
     

5.3 实例成员&静态成员

目标:能够说出什么是实例成员和静态成员

实例成员:通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员。

说明:

  1. 实例对象的属性和方法即为实例成员
  2. 为构造函数传入参数,动态创建结构相同但值不同的对象
  3. 构造函数创建的实例对象彼此独立互不影响。
     

静态成员:构造函数的属性和方法被称为静态成员


 

说明:

  1. 构造函数的属性和方法被称为静态成员
  2. 一般公共特征的属性或方法静态成员设置为静态成员
  3. 静态成员方法中的this指向构造函数本身。比如Date.now()、Math.PI、Math.random()

总结:

1. 什么是实例成员?

  • 实例对象的属性和方法即为实例成员

2. 什么是静态成员?

  • 构造函数的属性和方法被称为静态成员

六、内置构造函数

在JavaScript中最主要的数据类型有6种:

基本数据类型:字符串、数值、布尔、undefined、 null

引用类型:对象

http://www.xdnf.cn/news/6790.html

相关文章:

  • 3D个人简历网站 4.小岛
  • Python爬虫(29)Python爬虫高阶:动态页面处理与云原生部署全链路实践(Selenium、Scrapy、K8s)
  • Adobe Illustrator学习备忘
  • 【论文阅读】A Survey on Multimodal Large Language Models
  • MATLAB中进行深度学习网络训练的模型评估步骤
  • 【第一篇】 创建SpringBoot工程的四种方式
  • python field_validator 获取不到参数问题
  • matlab求矩阵的逆、行列式、秩、转置
  • java中的方法详解
  • QML 属性动画、行为动画与预定义动画
  • Python 中的 typing.ClassVar 详解
  • NAT转换和ICMP
  • 前k个高频元素
  • spring框架的JDBC模板技术
  • [原创](计算机数学)(The Probability Lifesaver)(P10): 生日概率问题.
  • 蓝牙A2DP协议概述
  • PSA Certified
  • Scratch游戏 | 地下城探险
  • 敏捷-第一章 引言:瀑布与敏捷
  • 第三届模式识别、机器视觉和人工智能国际会议(IEEE PRMVAI 2025)诚邀参会
  • ML307R 插到 ESP32 的 USBH_CDC 示例中
  • LocaleContextResolver实现多语言切换-笔记
  • c++ 类的语法3
  • 八股文--JUC(2)
  • 物联网技术在银行安全用电系统中的应用与实践研究
  • 【C++】15.并发支持库
  • C语言水仙花数
  • 通过python安装小智语音服务器端
  • 从实模式到保护模式
  • 基于LTE帧结构参数的F-OFDM仿真