zoukankan      html  css  js  c++  java
  • js 创建对象

    1.工厂模式

            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;
            }
            var person1 = createPerson("Nicholas", 29, "Software Engineer");
            var person2 = createPerson("Greg", 62, "Doctor");

    2.构造函数模式

            function Person(name, age, job) {
                this.name = name;
                this.age = age;
                this.job = job;
                this.sayName = function () {
                    alert(this.name);
                };
            }
            var person1 = new Person("Nicholas", 29, "Software Engineer");
            var person2 = new Person("Greg", 62, "Doctor");
            //与工厂模式的不同点
            //1.没有显示创造对象
            //2.直接将属性和方法赋值给this
            //3.没有return语句
            //4.使用new创造对象
    
            //使用方式
            //1.当做构造函数使用
            var person = new Person("Nicholas", 29, "Software");
            person.sayName();//Nicholas
    
            //2.作为普通函数调用
            Person("Yellow", 27, "Doctor");
            window.sayName();//Doctor
    
            //3. 在另一个对象的作用域中调用
            var o = new Object();
            Person.call(o, "King", 25, "Nurse");
            o.sayName();//King
            
            //缺点:每个方法都要在每个实例上重新创建一遍

    3.原型模式

            function Person() {
            }
            Person.prototype.name = "Yellowshorts";
            Person.prototype.age = 29;
            Person.prototype.job = "Software";
            Person.prototype.sayName = function () {
                alert(this.name);
            }
            var person1 = new Person();
            person1.sayName();//Yellowshorts
    
            var person2 = new Person();
            person2.sayName();//Yellowshorts
    
            alert(person1.sayName == person2.sayName);//true
  • 相关阅读:
    DateTime.now()用法
    C#中静态类详述
    面向对象详述
    解决Github打不开问题
    git 提交代码流程 先暂存 在提交+备注 然后拉取代码获取最新的代码 然后再推送 git push
    常用
    样式重置
    Html 5优化
    理解js闭包
    css 倒计时 svg
  • 原文地址:https://www.cnblogs.com/Yellowshorts/p/4103982.html
Copyright © 2011-2022 走看看