美文网首页
JavaScript面向对象的三大特性-来自于三人行慕课

JavaScript面向对象的三大特性-来自于三人行慕课

作者: 三人行慕课 | 来源:发表于2019-06-27 19:48 被阅读0次

    原文链接:https://www.3mooc.com/front/articleinfo/133

    封装性

    封装性体现在2个方面:

    (1)将自然界的事物,使用编程语言进行描述,就体现了封装性

    例如:使用编程语言描述一个人:

    姓名:周瑜

    技能:玩火

    使用PHP编程语言:

    class Zhou{

      public $name = ‘周瑜’;

      public function playFire(){

     }

    }

    使用JavaScript编程语言描述:

    Function Zhou(){

       This.name = ‘周瑜’;

       This.play = function(){

    }

    }

    (2)将重用的代码,提取到公共的地方,体现了封装性

    或者将变量、函数,使用对象进行收编

    例如,下面的代码:

    这种写法,有2点不足:

    (1)就会在计算机的内存中创建3个对象:checkUser、checkPass、checkEmail

    (2)上面的定义都是定义了3个全局变量,如果将来你在加载别的js文件的时候,容易出现全局变量被污染

    针对上面所说的不足之处,我们就采用面向对象的封装性进行收编

    这样,在内存中,只需要创建一个对象即可,其次,由于验证的功能,属于verify对象的,就减少了被污染的概率

    除了上面的写法,我们还可以采用工厂的模式:

    继承性:

    JavaScript的继承性体现在prototype原型上面

    例如:实现弹出框的功能,一个居中显示,一个右对齐显示,如果我们这样定义,就会在每个对象里面都维护一份create方法

    如果我将create功能,提取到该构造器的原型身上,这样每个对象里面都是空的,需要改功能的时候,再从原型中继承而来

    通常我们在封装一些可重用的插件的时候,都会将重用性强的代码,提取到原型中

    不一样的地方(弹出框位置不一样),通过传参数实现

    多态性:

    多态性在弱类型的语言中,体现的不是很明显,但是在JavaScript中,多态性的体现就表现在this的使用上

    同样一个对象this,在不同的环境下,代表的对象是不一样的,一个对象的多种状态

    相关文章

      网友评论

          本文标题:JavaScript面向对象的三大特性-来自于三人行慕课

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