zoukankan      html  css  js  c++  java
  • javascript面向对象的一些写法

    因为有闭包,能返回函数,所以针对于面向对象的封装,继承,多态三个特性实现,很舒服。

    代码如下:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
    <script type="text/javascript">
    // 封装
    var Person = function(name_arg){
        var name = name_arg;
        function show_name(){
            console.log(name);
        }
        function set_name(set_name_arg){
            name = set_name_arg;
        }
        return function(select){
            if("name" == select){
                show_name();
            } 
            else if("setName" == select){
                set_name(arguments[1]);
            }
        }
    }
    var person_sam = Person("Sam"),
    person_tom = Person("Tom");
    person_sam("name");
    person_tom("name");
    person_sam("setName","newSam");
    person_sam("name");
    
    // 继承
    var Male_person = function(arg_obj){
        var new_person = Person(arg_obj.name),
        gender = arg_obj.gender;
        function show_name(){
            new_person("name");
        }
        function show_gender(){
            console.log(gender);
        }
        return function(select){
            if("name" == select){
                show_name();
            }
            if("gender" == select){
                show_gender();
            } 
        }
    }
    var male_person = Male_person({"name":"nanren","gender":"male"});
    male_person("name");
    male_person("gender");
    </script>
    </body>
    </html>

    为什么没写多态呢,因为你自己想想都会。

  • 相关阅读:
    ubuntu开机挂载磁盘盘出现:Metadata kept in Windows cache, unable to mount
    ubuntuaptgetoldversion
    evince 41.2ubuntu 16.04snap
    ubuntu坚果云安装deb后启动不了
    电影票分析
    jieba分词讲解2
    期末总结建议
    软件架构师工作看法
    jieba分词讲解1
    1
  • 原文地址:https://www.cnblogs.com/samwu/p/3328650.html
Copyright © 2011-2022 走看看