如何创建对象

对象定义:无序属性的集合,其属性可以包含基本值、对象或者函数。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。

几种创建对象的方法:

1、Object的实例:

 var person = new Object();
        person.name = "Nichol";
        person.age = 29;
        person.job = "Software Engineer";

        person.sayName = function() {
            alert(this.name);
        };

2、对象字面量:

//对象字面量
        var person = {
            name: "Nichol",
            age: 29,
            job: "Sfwore Engineer",

            sayName: function() {
                alert(this.name);
            }
        }

使用Object构造函数或对象字面量的方式有个明显的缺点:使用同一个接口创建很多对象的时候,很产生大量的代码。

3.工厂模式:

//工厂模式
        function creatPerson(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 = creatPerson("He", 29, "Softwarer");
        var person2 = creatPerson("Wang", 27, "Doctor");

4.构造函数模式:

//构造函数模式
        function Person(name, age, job) {
            this.name = name;
            this.age = age;
            this.job = job;
            this.sayName = function() {
                alert(this.name);
            }
        }
        var person1 = new Person("He", 29, "Softwarer");
        var person2 = new Person("Wang", 27, "Doctor");
不同之处:
       1、 没有显式地创建对象;
       2、直接将属性和方法赋给了this对象 ;
       3、 没有return语句;


5、原型模式:

 //原型模式
        function Person() {

        }
        Person.prototype.name = "He";
        Person.prototype.age = 29;
        person.prototype.job = "Sofwarer";
        person.prototype.sayName = function() {
            alert(this.name);
        }

        var person1 = new Person();
        person1.sayName();

        var person2 = new Person();
        person2.sayName();
        alert(person1.sayName == person2.sayName); //true

我们直接将方法和所有的属性都添加到了Person的prototype的属性中,构造函数变成了空函数。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值