• Javascript 创建对象


    一、工厂模式

    function createPerson(name,age,job){
                var o=new Object();
                    o.name=name;
                    o.age=age;
                    o.job=job;
                    o.sayHi=function(){
                        alert(this.name);
                    };
                return o;
            }
            var person1=createPerson("xiaoming",29,"student");

    二、构造函数模式

    function Person(name,age,job){
            this.name=name;
            this.age=age;
            this.job=job;
            this.sayHi=function(){
                alert(this.name);
            };
        };
        var person2=new Person("xiaohong",29,"doctor");

    三、原型模式

    function Person2(){};
        Person2.prototype.name="xiaoming";
        Person2.prototype.age=20;
        Person2.prototype.job="Doctor";
        Person2.prototype.sayHi=function(){
            alert("Hi!");
        };
        person4=new Person2();
        person4.name="newPerson";

    四、构造函数和原型的混血

    function Person(name,age,job){
            this.name=name;
            this.age=age;
            this.job=job;
            this.friends=["hebe","ella"];
        };
        Person.protoptype={
            constructor:Person,
            sayName:function(){
                alert(this.name);
            }
        }
    var person=new Person("xiaoming",20,"Doctor");

    五、动态原型模式

        function Person(name,age,job){
            this.name=name;
            this.age=age;
            this.job=job;
            if(typeof this.sayName!="function"){
                Person.prototype.sayName=function(){
                    alert(this.name);
                }
            };
        };
        var friend=new Person("xiaoming",20,"Doctor");

    六、寄生构造函数——构造函数和工厂模式的混血

    function Person(name,age,job){
            var o=new Object();
            o.name=name;
            o.age=age;
            o.job=job;
            o.sayName=function(){
                alert(this.name);
            };
            return o;
        }
        var friend=new Person("hi",29,"Doctor");

    七、稳妥构造函数

    function Person(name,age,job){
            var o=new Object();
                o.sayName=function(){
                    alert(name);
                };
            return o;
        }
    var person=Person("xiaoming",20,"Doctor");
    放下过去,才能迎接未来! 未来的每一天我都要过的精彩!
  • 相关阅读:
    CF819B Mister B and PR Shifts
    HDU5969 最大的位或
    UVA1464 Traffic Real Time Query System
    [SCOI2010]连续攻击游戏
    [USACO11JAN] Roads and Planes
    [POJ3613] Cow Relays(Floyd+矩阵快速幂)
    洛谷P3237 [HNOI2014]米特运输(树形dp)
    awk 正则表达式、正则运算符详细介绍
    awk单行脚本快速参考
    Project Euler 44: Find the smallest pair of pentagonal numbers whose sum and difference is pentagonal.
  • 原文地址:https://www.cnblogs.com/lilylearning1992/p/4757697.html
Copyright © 2020-2023  润新知