zoukankan      html  css  js  c++  java
  • several way to create object in javascript

     //factory model:
        function createPerson(name, age, job) {
            var o = new Object();
            o.name = name;
            o.age = age;
            o.job = job;
            o.sayName = function () { alert(this.name); };
            return o;
        }
    
        //constructor model:
        function Person(name, age, job) {
            this.name = name;
            this.age = age;
            this.job = job;
            this.sayName = function () { alert(this.name); };
        }
    
        //prototype model
        function Person() { }
        Person.prototype.name = "roy";
        Person.prototype.age = 29;
        Person.prototype.job = "software engineer";
        Person.prototype.sayName = function () { alert(this.name); };
    
        //mix constructor model and prototype model
        function Person(name, age, job) {
            this.name = name;
            this.age = age;
            this.job = job;
            this.friends = ["roy","angel"];
        }
        Person.prototype = {
            constructor: Person,
            sayName: function () { alert(this.name); }
        }
    
        //dynamically prototype model
        function Person(name, age, job) {
            //properties
            this.name = name;
            this.age = age;
            this.job = job;
    
            //methods
            if (typeof this.sayName != "function") {
                Person.prototype.sayName = function () { alert(this.name); };
            }
        }
    
        //parasitic constructor model
        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;
        }
    
        //durable object
        function Person(name, age, job) {
            //create return object
            var o = new Object();
    
            //define private variable and method
            var xx;
            var yy;
    
            //add method
            o.sayName = function () { alert(name); };
    
            //return object
            return o;
        }
  • 相关阅读:
    lua编程之协程介绍
    lua编程之元表与元方法
    设计模式系列之单例模式
    设计模式系列之生成器模式
    设计模式系列之抽象工厂模式
    设计模式系列之原型模式
    设计模式系列之工厂模式
    stl源码分析之hash table
    2018/2019款 MacBookPro 接口失灵的原因及解决方案
    test
  • 原文地址:https://www.cnblogs.com/ongoing/p/3078797.html
Copyright © 2011-2022 走看看