码迷,mamicode.com
首页 > Web开发 > 详细

js创建对象的几种方式

时间:2019-03-02 10:27:17      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:function   模式   构造   工厂   OLE   大写   自定义   ima   create   

一.使用构造函数创建对象

  1.使用系统构造函数创建对象

    举例:     

1 var obj = new Object();
2 obj.name = "小明";
3 obj.age = 28;
4 obj.eat = function(){
5 console.log("小明喜欢吃西瓜");
6 };
7 console.log(obj.name);
8 console.log(obj.age);
9 obj.eat();

技术图片 

 2.使用自定义构造函数创建对象

    a.使用不带参数的自定义构造函数创建对象

      举例:    

 1 function Person(){
 2     this.name = "小红";
 3     this.age = 28;
 4     this.eat = function(){
 5     console.log("小红喜欢吃西瓜");
 6 }
 7 var obj = new Person();
 8 console.log(obj.name);
 9 console.log(obj.age);
10 obj.eat();

  技术图片

   b.使用带参数的自定义构造函数创建对象

      举例:

      

function Person(name,age){
    this.name = name;
    his.age = age;
    this.eat = function(){
            console.log(this.name + "今年" + this.age + "岁了,喜欢吃西瓜");
        };
}
var obj = new Person("小光",18);
var obj2 = new Person("小青",22);
console.log(obj.name);
console.log(obj.age);
obj.eat();
console.log(obj2.name);
console.log(obj2.age);
bj2.eat();

技术图片

    c.定义构造函数时应遵循的命名规范

      定义构造函数时函数名的首字母要大写

    d.使用instanceof关键字来查看对象的类型

      举例:    

function Person(name,age){
    this.name = name;
    this.age = age;
    this.eat = function(){
            console.log(this.name + "今年" + this.age + "岁了,喜欢吃西瓜");
        };
}
function Dog(){
    this.eat = function(){
            onsole.log("狗喜欢吃骨头");
    };
}
var obj = new Person("小光",18);
var obj3 = new Dog();
console.log(obj instanceof Person);
console.log(obj instanceof Dog);
console.log(obj3 instanceof Dog);

技术图片

 

二.工厂模式创建对象

  举例: 

        <script>
            //使用工厂模式创建对象
            function createObj(name,age,sex){
                var obj = new Object();
                obj.name = name;
                obj.age = age;
                obj.sex = sex;
                obj.say = function(){
                    console.log("我是" + "this.sex" + "的");
                };
                return obj;
            }
            var obj = createObj("小黄",56,"男");
            var obj = createObj("小紫",52,"男");
            
        </script>

  说明:使用工厂模式创建对象其实就是讲创建对象的过程用函数封装起来,用于方便快捷的创建多个类似的对象,同时也存在问题,使用工厂模式创建的对象,无法判断哪个实例属于哪个对象,即使用instanceof关键字无意义

js创建对象的几种方式

标签:function   模式   构造   工厂   OLE   大写   自定义   ima   create   

原文地址:https://www.cnblogs.com/alan-1996/p/10459921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!