为什么类在javascript中第一次返回空的原型对象?
我在下面有一段代码,正如你看到的,当console.log第一次记录类的原型时,它返回空的,但是这个类的新对象实际上可以响应这些方法,然后我在原型中添加函数并成功地创建新对象,如何解释它 代码基 输出 你怎么解释呢 通过为什么类在javascript中第一次返回空的原型对象?,javascript,ecmascript-6,Javascript,Ecmascript 6,我在下面有一段代码,正如你看到的,当console.log第一次记录类的原型时,它返回空的,但是这个类的新对象实际上可以响应这些方法,然后我在原型中添加函数并成功地创建新对象,如何解释它 代码基 输出 你怎么解释呢 通过类语法创建的方法/属性是不可枚举的,并且您记录值的环境似乎不显示不可枚举的属性控制台。日志未标准化,因此不同环境中的输出必须不同 通过赋值创建属性始终会创建可枚举属性 类多边形{ 建造商(高度、宽度){ 高度=高度; 这个。宽度=宽度; } 获取区域(){ 把这个还给我。cal
类
语法创建的方法/属性是不可枚举的,并且您记录值的环境似乎不显示不可枚举的属性<代码>控制台。日志未标准化,因此不同环境中的输出必须不同
通过赋值创建属性始终会创建可枚举属性
类多边形{
建造商(高度、宽度){
高度=高度;
这个。宽度=宽度;
}
获取区域(){
把这个还给我。calcArea()
}
钙质(){
返回this.height*this.width;
}
}
Polygon.prototype.test=函数(){return“test”}
//请注意“enumerable”的不同值`
log(Object.getOwnPropertyDescriptor(Polygon.prototype,'calcArea');
log(Object.getOwnPropertyDescriptor(Polygon.prototype,'test')代码>您正在哪个浏览器中测试此功能?在Chrome的控制台中,我看到Object{constructor:function,calcArea:function}
作为第一个日志条目。看到@apsillers,它看起来像是不同环境的console.log,谢谢你的帮助。谢谢,看起来类有原型,但控制台日志没有显示它,我的高级目标和问题是,如果您有兴趣,欢迎尝试解决它
class Polygon {
constructor(height, width) {
this.height = height;
this.width = width;
}
get area() {
return this.calcArea()
}
calcArea() {
return this.height * this.width;
}
}
console.log(Polygon.prototype)
polygon = new Polygon(222,122)
console.log(polygon.area)
console.log(polygon.calcArea())
Polygon.prototype.test = function(){ return "test"}
console.log(Polygon.prototype)
console.log(polygon.test())
Polygon {}
27084
27084
Polygon { test: [Function] }
test