es6クラス構文で作成されたパブリックメソッドは、列挙できません。 es5 & es6で書かれた 'getname'メソッドの違いは何ですか?es6 propertyIsEnumerable
function Cat(){
this.name="cat"
}
Cat.prototype.getname = function() {return this.name}
var cat = new Cat()
class Dog {
constructor(){
this.name="dog"
}
getname() {
return this.name
}
}
var dog = new Dog()
cat.__proto__.propertyIsEnumerable("getname") //true
dog.__proto__.propertyIsEnumerable("getname") //false
ES2015の動作が異なる理由はありますか?クラス構文が文法的な砂糖だけの場合、__proto__で連鎖されたメソッドを列挙できないはずですか? – Viswesh
プロトタイプチェーンを定義するための構文砂糖ですが、 'Object.defineProperty'を使用したければES5で列挙できないようにすることもできました。 – loganfsmyth
申し訳ありませんが、それは答えの批判ではなく、Visweshに対する返信を意味していました。 – loganfsmyth