JavaScript的类实例方法存储在哪里?

时间:2017-08-18 02:05:18

标签: javascript class methods

假设:

var car = class Car{
    drive() {}
    park(){}
}

鉴于汽车,我怎样才能找到这门课的方法, 即“开车”和“停车”? 我原本以为他们都在

car.prototype

确实

car.prototype.drive

返回方法 和

car.prototype.hasOwnProperty("drive") => true

for(let prop_name in car.prototype){
    console.log(prop_name)
}

什么都不打印。

1 个答案:

答案 0 :(得分:0)

该属性不可枚举(car.prototype.propertyIsEnumerable("drive") === false),因此无法显示。请参阅MDN

  

for ... in语句迭代了一个的可枚举属性   对象,按原始插入顺序

否则你是对的,函数在原型上。

请注意,这是和实例方法。每个实例都存在一个实例方法,正如名称所暗示的那样。您可以生成实例方法,例如与

class car {
  constructor() {
    this.instanceFunc = () => {};
  }
}

请注意明确new car().instanceFunc !== new car().instanceFunc