• Javascript基础与面向对象基础~第八讲 从人类的起源谈面向对象


    回到目录

    我很荣幸来写这个结局,有时,我们看人,物,事需要用心去看,而不是用眼睛,因为用眼睛看到的往往是事物的假像,在这里对我最可爱的兄弟说一声,对不起。

    从人类的起源谈面向对象,事实上主要说的是面向对象,现在我简单来说一下面向对象的特性吧,当你把一个程序写成面向对象的之后,它将有三个好处,即

    封装,继承和多态,这是所有面向对象语言的一个共性,而对于JS这个语言来说,也可以借鉴一下,如JS里实现封装,JS里的继承等等。

    JS封装:

    当我们干某件事时,需要将一些代码组织在一起,形成一个function,而这个过程我们称为封装,而在使用这个功能时,只要知识function的方法签名即可,你不

    需要管它的实现细节。代码如:

    //验证表单
    function chkFormFun(name,password,email){
    if(name==''){
     alert('用户名不能为空');
     return false;
     }
    if(password==''){
      alert('密码不能为空');
      return false;
     }
    if(email==''){
      alert('Email不能为空');
      return false;
     }
    return true;
    }

    我们要需要表单验证的地方,直接调用chkFormFun这个方法即可,无需了解它的实现细节。

    JS中的继承:

    在部分知识我在第四讲 Javascript中的类对象中有比较详细的介绍,各位可以去查看,而继承的主要思想已经它会将一类对象的共有属性和方法提取到一个新对象

    中,这个对象我们称为基类,而其实相关对象可以去继承它,这样基类中的信息将被子类完整继承,并且子类可以根据自己的需要,去重写基类的属性和方法。

    由于JS没有提供对象的继承机制,所以我们需要使用一些JS技巧来实现这个效果,它的原则如下:

    1 在子类构造函数(constructor)中调用父类构造函数(父类.call()).

    2 修改子类prototype(原型链)属性为父类的实例.(prototype一般用来实现对函数的扩展,Dog.prototype = new AnimalFun();表示对父类AnimalFun进行扩展)

    3 重置子类的prototype的constructor属性为子类.

    JS中的类

    下面定义了一个和人类有关的代码,它体现了JS中的类,类中的属性,及类的行为是如何实现的

    var Person={ //人对象
      Name:'zzl',//属性
      Facial:[‘Eye’,‘Nose’,‘Mouth’],//属性
      Work:function(){//方法
      console.log(this.Name+',这个人开始上班了');
     }
    }

    再调用这个人类对象时,可以这样:

    console.log("人的姓名:"+Person.Name);
    
    console.log("人的五官:"+Person.Facial);
    
    Person.Work();//人要上班了

     最后祝所有的好人都交到好的朋友,好的知己,最后感谢老天给我一个最好的朋友,谢谢!

    感谢阅读!

    回到目录

  • 相关阅读:
    acdream.18.KIDx's Triangle(数学推导)
    upc.2219: A^X mod P(打表 && 超越快速幂(in some ways))
    山东省第四届acm.Rescue The Princess(数学推导)
    BC.5200.Trees(dp)
    BC.36.Gunner(hash)
    hdu.5195.DZY Loves Topological Sorting(topo排序 && 贪心)
    数组倒置算法扩展
    C# 传值和传引用 ( ref out in )
    C# 输出文件夹下的所有文件
    控制反转(自译)
  • 原文地址:https://www.cnblogs.com/lori/p/2881618.html
Copyright © 2020-2023  润新知