/*
* construct方法 会在类中默认添加上的
*/
class Point{
constructor(){
this.name="xxx"
}
tostring(){
return "xxxxx"
}
}
class B extends Point{
}
let point=new Point
let b=new B
// console.log(Point.prototype)//{constructor: ƒ, tostring: ƒ}
// console.log(B.prototype)//Point {constructor: ƒ}
console.log(B.__proto__===Point)//true 子类的指向父类
console.log(Point)
class Point{
constructor(){
this.name="xxx"
}
tostring(){
return "xxxxx"
}
}‘
console.log(b.__proto__===Point)
// false 由于b.prototype是一样的返回Point {constructor: ƒ}
console.log(b.__proto__===Point)//其实和B.prototype是一样的
console.log(b.prototype)//undefined 由于实列对象没有proptye
console.log(point)
// Point {}__proto__: Object 1.实列对象只能获取实例对象自身的属性
//2.要想获取实例的原型的方法就必须加__proto__
console.log(point.__proto__.tostring())//xxxxx
console.log(Object.getPrototypeOf(point)===Point.prototype)
//true Object.getPrototypeOf 指向对象的原型
/*
* 对象的私有方法
*/
class Widget{
foo(){
this._baz()
}
_baz(){
console.log("私有属性")
}
}
let w=new Widget()
console.log(w.prototype)//undefind
console.log(w.__proto__)//{constructor: ƒ, foo: ƒ, _baz: ƒ}
console.log(w.__proto__===Widget.prototype) //true
class类的总结
最新推荐文章于 2021-08-11 10:50:36 发布