原型继承只能子类继承父类的公有属性及方法,不能继承私有属性及方法、特权属性及方法。这句话对吗?

来源:6-1 原型继承

慕前端2185815

2020-12-21 10:54:59

原型继承只能子类继承父类的公有属性及方法,不能继承私有属性及方法、特权属性及方法。这句话对吗?

写回答

1回答

好帮手慕夭夭

2020-12-21

同学你好,理解的不对,特权方法(属性)是可以继承的。具体如下理解:

1、JavaScript中其实并没有私有方法(属性)的,只不过我们把局部变量或者局部函数叫做私有的属性或者方法。因为局部变量和局部函数在函数外部拿不到,所以私有方法(属性)不可以继承是对的。

2、而特权方法其实也是公有方法。通俗的理解,一个公有方法访问了私有属性,就可以叫做特权方法了。

示例:

http://img.mukewang.com/climg/5fe04b8a0988464b06610626.jpg

按F12查看控制台,可以看到特权方法是可以被子类的实例对象调用的,说明可以继承的:

http://img.mukewang.com/climg/5fe04bb20985cd2a05670130.jpg

3、综上,除了私有属性(方法)不可以继承,其他的都可以继承。另外,前面老师说了,JavaScript其实没有私有属性这个概念的,我们只不过把定义的局部变量称之为私有属性,所以你可以理解为,在构造函数中定义的属性和方法,以及构造函数原型上的属性和方法都是可以继承的。

祝学习愉快~

0

0 学习 · 14456 问题

查看课程