浅谈对面向对象的理解
Posted wpf2lhy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈对面向对象的理解相关的知识,希望对你有一定的参考价值。
面向过程与面向对象的区别:
面向过程是一种直接的编程方法,它是按照编程语言的思路考虑问题。通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序。
面向对象是一种抽象度更高的编程方法。它的目标是使模块的抽象度更高,目的是可复用。面向对象三大特性:封装,继承,多态。
面向过程可以说是从细节方面思考问题
面向对象可以说是从宏观方面思考问题
对象的创建方式有对象字面量,工厂方式,原型方式,构造函数,混合模式
原型,原型链:
我们创建的每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。那么,prototype就是通过调用构造函数而创建的那个对象实例的原型对象。
使用原型的好处是可以让对象实例共享它所包含的属性和方法。也就是说,不必在构造函数中添加定义对象信息,而是可以直接将这些信息添加到原型中。使用构造函数的主要问题就是每个方法都要在每个实例中创建一遍。
在javascript中,一共有两种类型的值,原始值和对象值。每个对象都有一个内部属性 prototype ,我们通常称之为原型。原型的值可以是一个对象,也可以是null。如果它的值是一个对象,则这个对象也一定有自己的原型。这样就形成了一条线性的链,我们称之为原型链。
简单的说就是在JavaScript 中,每当定义一个对象(函数)时候,对象中都会包含一些预定义的属性。其中函数对象的一个属性就是原型对象 prototype。JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype,我们把这个有__proto__串起来的直Object.prototype.__proto__为null的链叫做原型链
以上是关于浅谈对面向对象的理解的主要内容,如果未能解决你的问题,请参考以下文章