好的程序员前端教程面向对象和原型原型链1.面向对象:面向对象是程序开发的一种方法,它以对象为基础unitofprograms,封装程序和数据,以提高软件的灵活性、可重用性和可扩展性。目的是把数据和对数据的操作方法作为一个相互依存的整体。再来说说类和对象。类描述了一组具有相同特征和相同行为的对象。具有相同属性和方法的对象的抽象就是类。即对象的抽象就是类,类的实例就是对象。在面向对象编程中,从类创建对象的过程称为实例化。面向过程和面向对象的区别在于,面向过程是一种直接的编程方法,它是按照编程语言的思维来考虑问题的。一个功能是通过依次执行一组语句来实现的,这些语句的执行过程就是整个程序。面向对象是一种抽象程度较高的编程方法。它的目标是让模块更加抽象,目的是为了可重用。面向对象的三大特点:封装、继承、多态。面向过程可以说是从细节上思考问题。面向对象可以说是站在宏观的角度思考问题。对象创建方法包括对象字面量、工厂方法、原型方法、构造函数和混合模式。Prototype,原型链:我们创建的每个函数都有一个原型属性,它是一个指向对象的指针,该对象的目的是包含可以由特定类型的所有实例共享的属性和方法。那么,prototype就是调用构造函数创建的对象实例的原型对象。使用原型的好处是它允许对象实例共享它包含的属性和方法。也就是说,不用在构造函数中添加定义对象信息,而是可以直接在原型中添加信息。使用构造函数的主要问题是必须在每个实例上创建每个方法。在JavaScript中,有两种类型的值,原始值和对象值。每个对象都有一个内部属性原型,我们通常称之为原型。原型的值可以是对象或null。如果它的值是一个对象,那么这个对象也必须有自己的原型。这就形成了一个线性链,我们称之为原型链。简单的说,在JavaScript中,只要定义了一个对象(函数),这个对象就会包含一些预定义的属性。函数对象的属性之一是原型对象prototype。JS在创建一个对象(不管是普通对象还是函数对象)的时候,有一个内置的属性叫做__proto__,用来指向创建它的函数对象的原型对象prototype。我们把这个与__proto__串起来直到Object.prototype.__proto__为null的链称为原型链。
