什么是js面向对象?
1.首先,js面向对象是一种思想;
2.其次,遵循万物皆对象的准则;程序中的关键模块都可以视为对象,对象都是由属性和方法组成,属性可以理解为对象的特征,是静态的,方法可以理解为对象的行为,是动态的;
3.面向对象会使用对象的属性和方法,它不关注内部的细节和过程;同时也会构造对象。
4.在js中,所有的对象可以分为普通对象和函数对象。而Object ,Function 是JS自带的函数对象。凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。
面向对象有什么特点?
1.封装
封装通俗的说,就是我有一些秘密不想让人知道,就通过私有化变量和私有化方法,这样外界就访问不到了。然后如果你有一些很想让大家知道的东西,你就可以通过this创建的属性看作是对象共有属性和对象共有方法,这样别人知道你的公共的东西啦,不止如此,你还可以访问到类或对象自身的私有属性和私有方法。
2.继承
六大继承
1.原型继承:将父类的实例赋值给子类的原型
这就是原型继承 将父类的私有和公有都继承在子类的原型上,成为子类的公有属性。
2.call继承 将父类私有的继承为子类私有的
3.冒充对象继承 将父类私有的和公有的都继承为子类私有的
4.混合继承 私有的继承为私有的,公有的和私有的再次继承为公有的
混合继承是call和原型继承的结合 私有的被继承了两次
5.组合继承 私有的继承为私有的 公有的继承为公有的
6.中间类继承
arguments 不是一个数组,没有array的那些自带的方法,现在我们想arguments有array的那些方法,将arguments的原型执行Array内置类的原型。