美文网首页
面向对象

面向对象

作者: 你怀中的猫 | 来源:发表于2022-05-10 17:05 被阅读0次

1、面向过程

  • 先将解决问题所需要的步骤分析出来,再用函数将这些步骤实现,按照业务一个一个的依次调用这些函数,从而解决问题。

2、面向对象

  • 先将参与问题的对象分析出来,然后分析这个对象在这个问题中所具备的属性和行为,重点是研究参与问题的各个对象
  • 面向对象的优势:
    1、维护简单
    2、可扩展性
    3、代码重用性
    4、代码效率高

3、对象 (万物皆对象)

  • 对象中所有的值都是以键值对的形式来存在的
  • 如果键值对的值是一个具体的值,则这个键值对就叫对象的属性。
  • 如果键值对的值是一个函数,则这个键值对就叫对象的方法
var obj = {
     name : "张三",  //对象的属性
     say : function(){   //对象的方法
         console.log(wedqwd);
     }
}

4、抽象

  • 在很多对象中按照某个共同的特征归为一个类,这个过程就叫抽象。

5、类

  • 是具有共同特征的对象的集合
  • class 在 java php等语言中 类由class来声明
  • 在js中我们可以通过构造函数的形式来定义一个类。
  • 构造函数,首字母必须大写

6、this指向

  • 当构造函数,没有实例化 之前,其中this指向window
  • 当构造函数实例化之后,其中this指向 实例化出来的对象

7、原型对象

  • 实例化对象的时候,传参是给对象的属性传入具体值,而构造函数中,定义的方法其传参是在使用这个方法时,在传进去,不是定义类的时候给它传。

    //定义一个人类
    function Person(names) {
        this.type = '人类';
        this.names = names;
        this.say = function (t) {
            console.log(this.names + "说:" + t);
        }
    }

    var qiang = new Person('强哥');
    var tan = new Person('摊主');

    qiang.say('你这挂管用吗');
    tan.say('不管,十年大礼包,滚');
  • 当实例化出来的对象,有特有的方法或者属性时,可以直接给这个对象添加
qiang.kan = function () {
        console.log('强哥掏出🔪,额宰');
}
qiang.kan();
  • 原理:
    1、对象的方法或者属性,在执行或者使用的时候,会先在对象本身去查找这个方法或者属性
    2、如果找到就调用,如果找不到,就去他的原型对象中去找
    3、如果在原型对象还找不到,就去原型对象的原型对象里去找(原型链)
    4、直到找到位置,找到就调用,找不到就报错

8、原型链

  • 所有的对象都有原型对象
  • 我们可以通过原型对象给已经封装好的类,添加公有方法或属性
    //给数组对象添加一个排序的方法

    Array.prototype.pai = function () {
        this.sort(function (a, b) {
            return a - b;
        })
        console.log(this);
        return this;
    }
    var arr = new Array(657, 678, 23, 567, 3, 6, 7, 89, 45, 2)
    console.log(arr);
    arr.pai();
    //给字符串原型添加去除违禁词的方法(可以去除一个、多个)

    String.prototype.wj = function(arg){
        //一个违禁词时, arg是一个字符串
        //多个违禁词时, arg是一个数组
        console.log(typeof(arg));
        //根据传入的参数判断有几个参数 
        if(typeof(arg) == 'string'){
            console.log('一个参数');
            //定义正则
            var reg = new RegExp(arg,'g');
            //修改违禁词
            var str1 = this.replace(reg,'*');
        }else if(typeof(arg) == 'object'){
            console.log('多个参数');
            //使用for循环,将所有的违禁词循环
            var str1 = this;
            for(var i = 0; i < arg.length; i++){
                console.log(arg[i]);
                //根据违禁词设置正则
                var reg = new RegExp(arg[i],'g');
                str1 = str1.replace(reg,'*');
            }
        }else{
            console.log('参数错误');
        }
        return str1;
    }

9、arguments

  • 可变参数数组
  • 当使用arguments的时候,不能写形参,直接写实参
  • 实参会自动出现在函数的arguments属性中
  • arguments是函数原型中的一个属性
  • 它是一个伪数组,可以当成数组来使用,(但是不能使用数组的操作方法)
    function Person() {
        this.names = arguments[0];
        this.age = arguments[1];
        this.sex = arguments[2];
        this.cla = arguments[3];
        this.school = arguments[4];
        this.say = function () {
            console.log('你好,我是' + this.school + this.cla + this.names);
        }
    }

相关文章

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 总结.Net基础知识——献给即将入坑的同行们(一期)

    什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • 20-OOP类与对象

    面向对象 Object Oriented 学习面向对象:XXOO 面向对象的学习: 面向过程和面向对象的区别: 面...

  • JavaScript面向对象核心知识归纳

    面向对象 概念 面向对象就是使用对象。面向对象开发就是使用对象开发。 面向过程就是用过程的方式进行开发。面向对象是...

  • 面向对象(未完成)

    面向对象 标签(空格分隔): 面向对象 第一章:面向对象(上) 什么叫面向对象 面向过程、面向对象、两者区别 构造...

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象

    了解什么是面向对象 首先,我们学习面向对象,要了解什么是面向对象,面向对象的重要概念:类,对象。 面向对象提出的这...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

网友评论

      本文标题:面向对象

      本文链接:https://www.haomeiwen.com/subject/uhrdurtx.html