0722面向对象(二)

自己学习 继承和数据类型监测

一、类原型的重定向

1.向内置原型上扩展方法
第一种:
func.prototype.A=function(){}
func.prototype.B=function(){}
func.prototype.C=function(){}
第二种:别名
let proto=func.prototype
proto.Afunction(){}
proto.B
function(){}
第三种:在原型上批量设置属性方法,采用重定向的方式
func.prototype={
A:function(){}
}
这种方式缺点:
缺失了constructor
缺失了原型对象上的属性和方法
解决方法:
a>
在prototype手动设置constructor0722面向对象(二)

b>两个原型对象合并,用新的原型对象替换原始的原型对象,(问题:如果新老有个属性方法相同,则新的值会替换老的值)

0722面向对象(二)
c>更好的方式——重构原型指向
把老的原型对象作为新原型对象的上级原型
0722面向对象(二)
0722面向对象(二)

2.类原型的重定向
0722面向对象(二)
内置类的原型对象不允许重定向!!!

3.练习题
// =>0 //=> 30
0722面向对象(二)

0722面向对象(二)
二、面对对象练习题
每一个对象都有__proto__属性
函数对象才有prototype属性

0722面向对象(二)
c1 没有通过this.xx=xx设置私有属性,
=》tomunfinedjoin

2.还不太懂,回去补课
0722面向对象(二)