类和对象的关系

平常我们经常会说定义一个类,new出一个对象,今天我们来探讨一下这两者的关系。

一.类和对象的关系

(1)接下来我们来创建一个学生类

  class Studnet {
    constructor(name, age) {
      this.name = name
      this.age = age
    }
    say() {
      console.log('唱歌');
    }
    light() {
      console.log('跳舞');
    }
  }
  let s1 = new Studnet('小明', 20)
  s1.say()
  s1.light()

可以看出这个类里面有 name和age两个,和一些方法。

通过new就会创造出一个对象,然后传递参数过去。

在类的那一边就会接收到传递过来的参数。

分析一下:里面的this指向谁

通过打印里面的name可以发现:

    console.log(name, 66666666666);  //小明 

也就是我们传递过去的实参,小明

打印构造函数里面的this,看下他指向的是谁

      console.log(this);

打印的结果:

类和对象的关系_第1张图片 

 也就是构造函数的内部:

this.name 也就是代表 Stundent 这个类添加一个name属性

this.name=name   这是一个赋值的过程,也就是实参传递的过程。

后面的方法,比如 唱歌的方法和跳舞的方法,都是挂载到prototype属性上的。

通过打印s1可以看出:

类和对象的关系_第2张图片

 

(2)生成不同的对象

说明:我们需要一个名字为小红,年龄为21的对象。

 let s2 = new Studnet('小红', 21)

打印出的结果:

类和对象的关系_第3张图片

 

(3)在类上添加一个方法

 class Studnet {

    constructor(name, age) {

      console.log(this);

      console.log(name, 66666666666);

      this.name = name

      this.age = age

    }

    say() {

      console.log('唱歌');

    }

    light() {

      console.log('跳舞');

    }

    paly() {

      console.log(打游戏);

    }

  }

  let s1 = new Studnet('小明', 20)

  let s2 = new Studnet('小红', 21)

  console.log(s1);

  console.log(s2);

 s1.paly();

 s2.paly()

查看的结果:

类和对象的关系_第4张图片

(4)得出结论

比如我们现在要去生产一部手机。

有华为手机,小米手机。这些都是手机的名字

每个手机的功能又不一样,这就像是里面的方法。

类就相当于已经配置好的一个车间一样。

通过调用这个类,也就是产生一个新的对象。

去生产不同的手机。

你可能感兴趣的:(javascrpit,前端)