其他分享
首页 > 其他分享> > 面向对象

面向对象

作者:互联网

一、面向对象与面向过程的区别

1、面向过程(过程化).

面向过程的思想是把一个项目、一件事情按照一定的顺序,从头到尾一步一步地做下去,先做什么,后做什么,一直到结束。

2、面向对象:强调类的概念,通过类可以创建任意多个具有相同属性和方法的实例对象。

面向对象的思想是把一个项目、一件事情分成更小的项目,或者说分成一个个更小的部分,每一部分负责什么方面的功能,最后再由这些部分组合而成为一个整体。

二、构建对象

new的使用

以 new 操作符调用函数的时候,函数内部发生以下变化:

  1. 创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。
  2. 属性和方法被加入到 this 引用的对象中。
  3. 并且最后隐式的返回 this (创建也是隐式)。

使用new关键字来实例化对象

(1)利用类里面的构造器来构建对象(es6的)类组件

        class Person{
          constructor(age){ //构造器 其实就是一个构造函数
          	this.age = age
          }
        }
        //new 关键词来构建
        var person = new Person(18)

(2)使用构造函数来构建 (es3的) 函数组件

        function Person(age){
        	this.age = age
        }
        //new关键词来构建
        var person = new Person(18)

构建函数的步骤

使用工厂模式来构建对象

(1)工厂模式构建对象的步骤

(2)工厂模式构建对象的不足

        //当前这个类的类型是否是Person类型
        console.log(person instanceof Person); //false
        console.log(person instanceof Object); //true
        function factory(age){
        	//声明一个对象
        	var obj = new Object()
        	obj.age = age
        	return obj
        }
        var person = factroy(18)

三、抽取对象

四、static静态修饰

static修饰的函数 使用类名.方法名
static修饰的函数 只会初始化一次 (每次调用的都是同一个函数)

        class Person{
            constructor(){

            }
            run(){
                console.log('run');
            }
            static sayHello(){
                console.log('hello');
            }
        }
        new Person().run()
        //静态函数 调用 使用类名.方法名 (static修饰的函数 声明一次)
        Person.sayHello()
        Person.sayHello()
        Person.sayHello()
        Person.sayHello()
        console.log(Person.sayHello == Person.sayHello);//true

标签:Person,对象,age,面向对象,sayHello,构建,new
来源: https://www.cnblogs.com/-lsg10026244/p/16583781.html