假设:
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)
}
什么都不打印。
答案 0 :(得分:0)
该属性不可枚举(car.prototype.propertyIsEnumerable("drive") === false
),因此无法显示。请参阅MDN。
for ... in语句迭代了一个的可枚举属性 对象,按原始插入顺序
否则你是对的,函数在原型上。
请注意,这是不和实例方法。每个实例都存在一个实例方法,正如名称所暗示的那样。您可以生成实例方法,例如与
class car {
constructor() {
this.instanceFunc = () => {};
}
}
请注意明确new car().instanceFunc !== new car().instanceFunc