찾다

 >  Q&A  >  본문

JS中子类的实例属性为什么可以访问父类的实例属性?

class Person {
  constructor(name, age) {    this.name = name    this.age = age
  }
  
  test() { }
}class Student extends Person {
  constructor(name, age, no) {    super(name, age)    this.no = no
  } 
  say() {    console.log(`name: ${this.name}, age: ${this.age}, no: ${this.no}`)
  }
}let student = new Student('mrcode', 21, '11403080435')
student.say()

student可以访问test方法,这点可以理解。 但是为什么通过Student中的this可以访问到父类中的name, age呢? ES6中的class只是原型链的语法糖。 原型链上的对象都是原型。 哪里来的name, age属性呢?

checkcheck2826일 전818

모든 응답(2)나는 대답할 것이다

  • 数据分析师

    数据分析师2017-10-01 00:39:22

    JS에서 하위 클래스의 인스턴스 속성이 상위 클래스의 인스턴스 속성에 액세스할 수 있는 이유는 무엇입니까? -PHP 중국어 Q&A-JS에서 하위 클래스의 인스턴스 속성이 상위 클래스의 인스턴스 속성에 액세스할 수 있는 이유는 무엇인가요? -PHP 중국어 홈페이지 Q&A

    꼭 보고 배워보세요.

    회신하다
    0
  • 迷茫

    迷茫2017-03-03 10:54:38

    (super(name,age))相当于原始寄生组合继承中的 Person.call(this,name,age)

    회신하다
    0
  • 취소회신하다