构造函数与实例成员、静态成员

文章介绍了JavaScript中的构造函数,用于初始化对象并创建多个类似的实例。构造函数通过`new`关键字调用,`this`关键字指代实例对象。实例成员是通过构造函数为对象添加的属性和方法,而静态成员则是直接添加到构造函数上的属性和方法,它们由构造函数自身访问,静态方法中的`this`指向构造函数。
摘要由CSDN通过智能技术生成

构造函数

  • 构造函数:是一种特殊的函数,主要用来初始化对象
  • 使用场景:常规的 {…} 语法允许创建一个对象。比如我们创建佩奇了一个对象,继续创建乔治的对象还需要重新写一遍,此时可以通过构造函数快速创建多个类似的对象
<script>
	// 普通写法
	const peiqi = {
		name: '佩奇'
	}
	const qiaozhi= {
		name: '乔治'
	}

    // 可以使用如下构造函数:
    function obj(name) {
        this.name = name
    }
    const peiqi = new obj('佩奇')
    console.log(peiqi )
    const qiaozhi = new obj('乔治')
    console.log(qiaozhi )

</script>

总结:

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

注:实践中为了从视觉上区分构造函数和普通函数,习惯将构造函数的首字母大写。

实例成员

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

<script>
  // 构造函数
  function Person() {
    // 构造函数内部的 this 就是实例对象
    // 实例对象中动态添加属性
    this.name = '小明'
    // 实例对象动态添加方法
    this.sayHi = function () {
      console.log('大家好~')
    }
  }
  // 实例化,p1 是实例对象
  // p1 实际就是 构造函数内部的 this
  const p1 = new Person()
  console.log(p1)
  console.log(p1.name) // 访问实例属性
  p1.sayHi() // 调用实例方法
</script>

总结:

  1. 构造函数内部this实际上就是实例对象,为其动态添加的属性和方法即为实例成员
  2. 为构造函数传入参数,动态创建结构相同但值不同的对象

注:构造函数创建的实例对象彼此独立互不影响。

静态成员

JavaScript中底层函数本质上也是对象类型,因此允许直接为函数动态添加属性或方法,构造函数的属性和方法被称为静态成员。

<script>
  // 构造函数
  function Person(name, age) {
    // 省略实例成员
  }
  // 静态属性
  Person.eyes = 2
  Person.arms = 2
  // 静态方法
  Person.walk = function () {
    console.log('^_^人都会走路...')
    // this 指向 Person
    console.log(this.eyes)
  }
</script>

总结:

  1. 静态成员指的是添加到构造函数本身的属性和方法
  2. 静态成员只能构造函数来访问
  3. 静态成员方法中的 this 指向构造函数本身
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值