个人对面向对象的理解

2017-06-12  本文已影响0人  不去解释

我对原型和原型链式这样理解的,原型和原型链在javascript当中主要用来体现对象 与属性之间的关系,它主要应用于继承,对于我来说呢,我是这样认为的,面向对象一共有六种创建的方式 1字面式 2构造创建对象3原型创建对象4混合创建的工厂创建6Object创建方式,在我们实战当中,在写组件和插件的时候,用字面量创建方式的比较多,在处理json数据,也是用字面量的比较多,这样比较简单。
除了创建对象以外,利用这些的创建对象去实现一些东西,这个时候所涉及到的js里面的继承,js里面的继承,首当其冲就是原型和原型链的继承,其中原型就是每一个方法里面都带一个prototype属性,这个对象指向的是方法的原型的对象,至于原型链,在继承当中,子对象永远有一个属性为proto,这个属性指向父对象的原型,父对象的原型里面有带有一个proto,那这样就是,子对象的protoproto就是父对象的proto,这个其实就是我们的原型链,在我们的使用当中,原型链在继承当中体现的是比较多的,在使用的时候,在关键的就是,原型链和原型继承,它使用在这个方面,除了原型链和原型继承,还有一些其他的继承,比如说构造函数的继承方面,我可以在一个构造函数内部,也就是在父构造函数内部指定一些属性和方法,然后用this关键字来指定的,在子构造函数当中,我们也可以指定同样的方法和属性,但问题是,在子构造对象昂当中,有两步骤是必须存在的,第一步在子对象当中,必须用付对象实例化一次,第二种情况,必须调用一下父对象,还必须要传个参,这是构造函数我们所需要注意的还有第三种的方法就是call apply继承的写法,这两种就比较简单一点了,其中继承的时候,在子对象中只要调用方法,后面跟参数就可以了,其中它连个的区别就是,一个参数是变量,一个数组。
对于面向对象当中,还理解到面向对象的关键词,比如像instanceOf,就是判断某个对象是不是某个类的一个实例,像delete 删除属相,还有call和apply,arguments,callee,还有this关键从,这些都是我们在面向对象当中常用到,还有一点,我们面向对象主要体现的是一些封装的思想,封装的思想主要体现在闭包上面,闭包主要是用来,体现到的就是,方法中的局部变量我们外面能不能直接访问,闭包是一个外层方法和内层方法,你直接访问方法中的局部变量是访问不到的,但是你通过内层函数,它是直接可以访问到的外层函数的局部变量的,这个是我认识是闭包的一个主要作用 ,那么闭包在面向对象的主要思想体现在我们写插件的时候,写插件的时候,我们定义一个类,类里面跟一些属相和方法,你这些属性和方法用,那这些就是闭包,
我们的面向对象主要用在这些地方,我在以前的工作当中,我们公司一些常用的一些效果都是以组件的方式封装的,比如说像我们的图片轮播,我们封装组件主要是这么几种方法,比如先创建Dom对象,先把样式定位好,然后给里面的定位比如li 图片了,哪副图该显示
哪个图该隐藏,那么第二种方法是用来给这些图片和样式 设置一个定时器,定时器在不同的时间段中来显示不同的图片,再添加一些对应样式,删除一些对应的样式等,这是图片轮播。当然也有封装一些事件,比如像鼠标移入的时候,你该显示哪张图,比如移入到小圆点上 ,就是封装一些事件, 还有像常见的table切换了,返回顶部了,所有的这些东西我们常用的,我们都是封装成组件的形式来存在,这就是我对面向对象的理解,这也是我都原型和原型链的理解。

上一篇下一篇

猜你喜欢

热点阅读