JS深入对象

本节目标

深入了解对象

  • 创建对象
  • 构造函数
  • 实例成员
  • 静态成员

创建对象

💡 Tips:创建对象有三种方式

1, 对象字面量

<script>
    const o = {
      name: '佩奇',
      age: 8,
    }
</script>

2, new Object()

<script>
    const b = new Object({ name: '乔治' })
    // 或者
    const j = new Object()
    j.name = '邦德'
</script>

3, 构造函数

通过构造函数创建对象

构造对象

构造函数是一种特殊的函数, 可以快速构建多个类似的对象

示例:

<script>
    // 利用构造函数创建对象
    function Pig(name, age, gender) {
      this.name = name
      this.age = age
      this.gender = gender
    }
    const Peppa = new Pig('佩奇', 8, '女')
    console.log(Peppa)
    const George = new Pig('乔治', 3, '男')
    console.log(George)
  </script>

规范:

  • 构造函数以大写字母开头
  • 构造函数只能由 new 操作符执行
  • 使用 new 关键字调用函数的行为被称为实例化
  • 构造函数内部无需写returen, 返回值是新创建的对象
  • 构造函数内部的return返回的值无效
  • 实例化构造函数没有参数时可以省略(), 但是不建议省略
  • new Object() new Date() 也是实例化构造函数
  • 构造函数的本质技术是普通函数

实例化执行过程:

  1. 创建空对象
  2. 构造函数的this指向空对象
  3. 执行构造函数的代码
  4. 返回新对象

实例成员

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

<script>
    // 构造函数
    function Pig(name) {
      this.name = name
    }
    const peiqi = new Pig('佩奇') // 实例对象
    peiqi.age = 6 // 实例属性
    peiqi.asyHi = function () {  // 实例方法
      console.log('hi')
    }

    // 实例对象互相独立
    const qiaozhi = new Pig('乔治')
    console.log(peiqi === qiaozhi)
  </script>

说明:

  1. 为构造函数传入参数, 创建结构相同 但值不同的对象
  2. 通过构造函数创建的实例对象是独立的, 彼此互不影响

静态成员

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

<script>
    // 构造函数
    function Pig(name) {
      this.name = name
    }
    Pig.eyes = 2  // 静态属性
    Pig.sayHi = function () { // 静态方法
      console.log('hi')
      console.log(this) // Pig
    }
    Pig.sayHi()
  </script>

说明:

  1. 静态成员只能通过构造函数来访问
  2. 静态方法中的this指向构造函数
  3. Date.now() Math.PI Math.random() ... 这些都是使用构造函数的静态方法

本节总结

  1. 创建对象的三种方式: 对象字面量 / new Object / 构造函数
  2. 构造函数的作用: 批量创建对象
  3. 实例成员: 实例对象的属性和方法被称为实例成员
  4. 访问实例成员: 实例对象相互独立, 实例成员通过当前实例对象调用
  5. 静态成员: 构造函数的属性和方法被称为静态成员
  6. 访问静态成员: 静态成员只能通过构造函数访问

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript对象是用来存储数据和处理数据的一种数据类型。对象是由一些键值对组成的,其中键是唯一的字符串,值可以是任意数据类型。 例如,我们可以创建一个表示人的对象,其中包含姓名、年龄和职业信息: ``` const person = { name: 'John', age: 30, job: 'software developer' }; ``` 我们可以访问对象中的值使用点语法或方括号语法: ``` console.log(person.name); // 'John' console.log(person['age']); // 30 ``` 我们还可以给对象增加新的属性或更新现有属性的值: ``` person.location = 'New York'; person.age = 31; ``` JavaScript对象还可以包含方法,即可以在对象内部定义的函数。例如,我们可以为人对象添加一个方法来打印出自我介绍: ``` person.sayHi = function() { console.log(`Hi, my name is ${this.name} and I am ${this.age} years old.`); }; person.sayHi(); // 'Hi, my name is John and I am 31 years old.' ``` JavaScript对象可以通过继承从其他对象中继承属性和方法。这被称为对象的原型链,并且可以使用JavaScript内置的`Object.create()`函数来创建。 例如,我们可以创建一个基本对象,然后从中创建更多特定的对象,继承基 ### 回答2: JavaScript对象是一种复合数据类型,用于存储多个相关属性和方法的集合。对象由一对大括号{}表示,其中包含了若干个键值对(properties)。键(key)是一个字符串或者Symbol类型,值(value)可以是任意类型,包括基本数据类型和其他对象对象的属性可以通过两种方式访问:点运算符(.)和方括号运算符([])。通过点运算符,可以根据属性名称直接访问对象的属性。例如,obj.name将返回对象obj的名为name的属性值。若属性名称是一个变量、表达式或含有特殊字符,可使用方括号运算符。例如,obj[varName] 将返回obj中varName变量对应属性的值。 对象的方法是对象属性的一种特殊类型,它是可以被调用的函数。方法可以通过对象的属性来定义。例如,obj.method = function(){...} 定义了一个名为method的方法。方法可以访问对象的属性,并且使用this关键字引用方法所属的对象。 当通过new关键字创建一个对象时,会使用构造函数来初始化对象的属性和方法。构造函数是一种特殊的函数,用于创建对象实例。由构造函数创建的对象称为实例。每个对象实例都具有构造函数定义的属性和方法。 JavaScript对象还支持对象的扩展。通过Object.create()方法可以创建一个对象,该对象的原型(prototype)是传递的参数或者null。在ES6中引入了class关键字,可以创建类来定义对象,并使用extends关键字继承其他类的属性和方法。 总结起来,JavaScript对象是一种存储多个相关属性和方法的集合。对象通过属性和方法来定义和访问数据。构造函数可以初始化对象的属性和方法,而对象扩展和类机制则提供了更灵活和可扩展的对象创建方式。 ### 回答3: JavaScript对象是一种数据类型,用于存储和组织相关数据和功能。它是由一组属性和方法组成的。对象可以通过字面量形式创建,也可以通过构造函数创建。 对象属性是用键值对表示的,其中键是字符串类型,值可以是任何数据类型,甚至可以是另一个对象。属性值可以通过点操作符或方括号操作符来进行访问和修改。 对象方法是对象属性的一种特殊类型,它是一个函数。方法可以通过对象引用和点操作符来调用。方法可以访问和修改对象的属性,也可以执行其他操作。 JavaScript对象是动态的,可以随时添加和删除属性和方法。这使得对象非常灵活,可以根据需要进行扩展和修改。 JavaScript还提供了一些内置对象,如数组、日期和正则表达式对象。这些对象提供了特定类型数据的功能和方法。 对象可以通过原型继承来共享方法和属性。原型是每个对象都具有的一个属性,它指向另一个对象。当访问对象的属性或方法时,如果对象本身没有该属性或方法,JavaScript会沿着原型链一直向上查找,直到找到该属性或方法为止。 通过使用对象,我们可以创建复杂的数据结构,组织和管理相关数据和功能。对象在Web开发中非常常见,常用于处理DOM元素、处理用户输入、发送Ajax请求等。 总结来说,JavaScript对象是一种用于存储和组织相关数据和功能的数据类型。对象由属性和方法组成,可以动态地添加和删除属性和方法。对象可以通过原型继承来共享方法和属性,并且在Web开发中非常常用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值