创建对象方法

//1.工厂模式
    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 person1 = person('lj',22, '工人');

//2.构造函数模式
    function Person(name, age, job) {
        this.name = name;
        this.age = age;
        this.job = job;
        this.sayName = function () {
            alert(this.age)
        }
    }
    var person2 = new person('lj',22, '工人');


//3.原型模式
function Person() {

}
Person.prototype.name = 'lj';
Person.prototype.age = 22;
Person.prototype.job = '工人';
Person.prototype.sayName = function () {
    alert(this.name)
}
var person3  = new Person();

//3.1更简单的原型方法
function Person() {

}
Person.prototype = {
    name : 'lj',
    sge:22,
    job:'工人',
    sayName:function () {
        alert(this.name)
    }
}

var person3  = new Person();

//4.组合使用构造函数和原型模式(也是最常用的方法)
function PersonPrototype(name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
}
    Person.prototype.sayName = function () {
        alert(this.name)
    }
var person4 = new Person('lj',22, '工人');



//5.动态原型模式
    function person() {
        //属性
        this.name = name;
        this.age = age;
        this.job = job;
        //方法
        if(typeof this.sayName != "function"){
            Person.prototype.sayName = function () {
                alert(this.name)
            }
        }
    }

var person5 = new Person('lj', 22, '工人')
    //6.寄生构造函数模式
    function Person(name, sge, job) {
        var o = new Object();
        o.name = name;
        o.age = age;
        o.job = job;
        o.sayName = function () {
            alert(this.name)
        }
        return o ;
    }
var person6 = new Person('lj', 22, '工人');

//7.稳妥构造函数
    function person (name, age, job) {
        //创建要返回的对象
        var o = new  Object();
        //可以在这里定义私有变量和函数

        //添加方法
        o.sayname = function () {
            alert(name)
        }
        return o ;
    }
var person7 = new Person('lj', 22, '工人');

posted @ 2016-11-23 17:03  菜鸟一小只  阅读(132)  评论(0编辑  收藏  举报