JavaScript入门到精通二十八(forEach遍历、创建对象的三种方式、构造函数、new实例化执行过程、实例成员和静态成员)

一.forEach遍历数组

forEach()方法用于调用数组的每个元素,并将元素传递给回调函数

用于遍历数组的每个元素

语法:

javascript 复制代码
被遍历的数组.forEach(function(当前数组元素,当前元素索引号){
    //函数体
})

只遍历不返回数组

参数当前数组元素是必须要写的,索引号可选

javascript 复制代码
const arr = ['张三','李四','王五']
arr.forEach(function(item,index){
    console.log(item,index);
})

二.创建对象的三种方式

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

javascript 复制代码
<body>
  <script>
    const obj = {
      name:'张三',
      age:18,
      sex:'男'
    }
  </script>
</body>

2.利用new Object创建对象

javascript 复制代码
<body>
  <script>
    const obj = new Object()
    console.log(obj);
    obj.name = '张三'
    console.log(obj);
  </script>
</body>

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

三.构造函数

一种特殊的函数,主要用来初始化对象。可以通过构造函数来快速创建多个类似的对象

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

不过有两个约定:

1.它们的命名以大写字母开头

2.它们只能由"new"操作符来执行

创建构造函数:

javascript 复制代码
<body>
  <script>
    function Pig(name,age){
      this.name = name
      this.age = age
    }
    const pig1 = new Pig('佩奇',1)
    const pig2 = new Pig('乔治',2)
    console.log(pig1);
    console.log(pig2);
  </script>
</body>

1.使用new关键字调用函数的行为被称为实例化

2.实例化构造函数时没有参数时可以省略()

3.构造函数内部无需写return,返回值即为新创建的对象

4.构造函数内部的return返回的值无效,所以不要写return

  1. new Object() ,new Date()也是实例化构造函数

四.new实例化执行过程

1.创建新对象

2.构造函数this指向新对象

3.执行构造函数代码,修改this,添加新的属性

4.返回新对象

五.实例成员和静态成员

1.实例成员

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

方法)

1.为构造函数传入参数,创建结构相同但值不同的对象

2.构造函数创建的实例对象彼此独立互不影响

javascript 复制代码
<body>
  <script>
    function Pig(name){
      this.name = name
    }
    const pig1 = new Pig('佩奇')
    const pig2 = new Pig('乔治')
    console.log(pig1 === pig2)
  </script>
</body>
javascript 复制代码
<body>
  <script>
    function Pig(name){
      this.name = name
    }
    const pig1 = new Pig('佩奇')
    pig1.name = '小猪佩奇'
    pig1.say = function(){
      console.log('我是' + this.name)
    }
    const pig2 = new Pig('乔治')
    console.log(pig1);
    console.log(pig2);
  </script>
</body>

2.静态成员

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

1.静态成员只能构造函数来访问

2.静态方法中的this指向构造函数

比如:Date.now(),Math.PI,Math.random()

javascript 复制代码
<body>
  <script>
    function Pig(name){
      this.name = name
    }
    Pig.eyes = 2 // 静态属性
    console.log(Pig.eyes);
    Pig.say = function(){ // 静态方法
      console.log(this)
    }
    Pig.say()
  </script>
</body>
相关推荐
燕落南枝1 小时前
CSS 表单选择器与伪元素选择器详解
前端·css
拖孩1 小时前
一个人 + AI 做的小程序,今天,正式回本了
前端·后端·微信小程序
1024奇点1 小时前
【仓颉语言入门 · 第二篇 第 15 课】
开发语言·数据库·ide·开源
进击的丸子1 小时前
APP 人脸识别增值版 SDK:Camera2 无缝接入指南
前端·前端框架·代码规范
进击的丸子1 小时前
代理网络环境下 Linux Pro 在线激活实操指南
javascript·后端·安全
开开心心就好2 小时前
本地文件搜索工具,双击Ctrl就能呼出搜索
java·服务器·前端·支持向量机·ffmpeg·音视频·模拟退火算法
独隅2 小时前
Claude 高效使用指南深度评测
java·开发语言·claude·claude code
Agent世界2 小时前
千问Go上线我的应用:一句话生成可部署 AI 软件的技术拆解
开发语言·人工智能·golang·ai智能体
布莱克6052 小时前
C++ 中 unordered_set 与 unordered_map 有什么不同?一篇讲透
开发语言·c++·哈希