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>

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

  • 相关阅读:
    WslRegisterDistribution failed with error: 0x80370102
    vscode C/C++ 语法检查
    ADO.NET 一(概述)
    线程三(Mutex)
    线程二(Monitor)
    线程一(lock)
    interface Part4(接口中的多态)
    interface Part3(实现:显示和隐式)
    interface Part2(定义接口)
    interface Part1(接口详解)
  • 原文地址:https://www.cnblogs.com/samwu/p/3328650.html
Copyright © 2011-2022 走看看