原型继承只能子类继承父类的公有属性及方法,不能继承私有属性及方法、特权属性及方法。这句话对吗?
来源:6-1 原型继承
慕前端2185815
2020-12-21 10:54:59
原型继承只能子类继承父类的公有属性及方法,不能继承私有属性及方法、特权属性及方法。这句话对吗?
1回答
好帮手慕夭夭
2020-12-21
同学你好,理解的不对,特权方法(属性)是可以继承的。具体如下理解:
1、JavaScript中其实并没有私有方法(属性)的,只不过我们把局部变量或者局部函数叫做私有的属性或者方法。因为局部变量和局部函数在函数外部拿不到,所以私有方法(属性)不可以继承是对的。
2、而特权方法其实也是公有方法。通俗的理解,一个公有方法访问了私有属性,就可以叫做特权方法了。
示例:
按F12查看控制台,可以看到特权方法是可以被子类的实例对象调用的,说明可以继承的:
3、综上,除了私有属性(方法)不可以继承,其他的都可以继承。另外,前面老师说了,JavaScript其实没有私有属性这个概念的,我们只不过把定义的局部变量称之为私有属性,所以你可以理解为,在构造函数中定义的属性和方法,以及构造函数原型上的属性和方法都是可以继承的。
祝学习愉快~
相似问题