zoukankan      html  css  js  c++  java
  • js面向对象篇(一)

    Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。              ----摘自阮一峰老师的博客

    当然现在的es6中已经有了class,去声明一个类,让js看上去更像是一个面对对象编程的语言

    那么问题来了什么是面向对象呢?其实js是有很多种写法的,我们平时一般写的程序都是面向过程式的,就像这样

    var  a = 1;
    function show(opt){
        alert(opt);  
    }
    show(123);
    for(var i=1;i<10;i++){
         //
    }

    其实面向对象的程序,我们也是经常在用,就像这样

    var arr = new Array();    //这是一个数组对象,当然我们平时一般都写成[]的形式,其实是一样的,[]只不过是new Array()简写罢了
    var date = new Date();    //这是一个日期对象
    
    //对象上有属性和方法
    arr.length     //对象的属性
    arr.push()     //对象的方法
    arr.sort()
    date.getDate()    //对象的方法
            

    以上,就是我们经常用到的面向对象的程序的用法,只是我们只拿来用,而不知道其中所实现的原理罢了,我们称之为系统对象

    面向对象不过是另一种编程的方式而已,那么为什么要用面向对象编程呢,那是因为它相对于我们面向过程编程的写法,有它的一些优点

    1,抽象:抓住核心问题,换言之就是就是把相同的东西抽离出来

    2,封装:只能通过对象来访问方法或者属性,也就是有一定的规范,而不是什么情况下都可以使用的,就是防止我们滥用一些方法或者属性

    3,继承:从已有的对象中继承出一个新的对象,我认为这是最重要的,可以很大程度的复用代码,提交性能,而又不相互影响

    4,多态:多对象的不同形态,也就是在不同的场景下,同一个接口可能会有不同的作用,有不同的形态,也是可以达到复用代码的目的,当然因为js是弱类型语言,所以,可能不太明显

     当然,说这么多,可能大家还是云里雾里,所以,我建议大家多写面向对象的程序,只有这样你才能真切的感受到面向对象的好处。

  • 相关阅读:
    数值分析实验之常微分方程的数值解法(MATLAB实现)
    Hadoop 伪分布模式安装
    Word 如何标齐选项
    在windows上安装elasticsearch7.6
    《转载》python/人工智能/Tensorflow/自然语言处理/计算机视觉/机器学习学习资源分享
    使用fastai训练的一个性别识别模型
    小程序录音、上传、转格式、语音识别爬坑记(微信版本:6.6.7及以上)
    centos 7.0 下安装FFmpeg软件 过程
    用python实现matlib的 生成高斯模糊核
    opencv如何在jupyter notebook中显示图片
  • 原文地址:https://www.cnblogs.com/chenzhiyu/p/7899780.html
Copyright © 2011-2022 走看看