码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript的OOP - 创建对象

时间:2015-06-06 14:40:36      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:

OOP,即面向对象编程。在传统OOP语言中有一个标志,那就是类,而通过类可以创建出很多对象实例,这些对象实例都具有相同的属性和方法。例如,在PHP中的类和对象可以这样描述:

<?php
    class Person{
       var $name;  //类的属性
       function say(){  //类的方法
          echo ‘我的名字:‘.$this->name;
       }  
    }
    $person1 = new Person();  //实例化类
    $person1->name="张三";  //实例对象属性赋值        

 在JavaScript中没有类的概念,因此和php这样的标准面向对象语言会有所不同,js中的对象都是基于引用类型创建的。例如我们可以使用以下两种方式来创建对象:

var person1 = {};  //对象字面量方式创建
var person2 = new Object();  //实例化引用类型Object创建

使用以上两种方式创建对象具有同样的效果,对象创建好了,我们可以给创建好的对象添加属性方法,所谓属性和方法,其实就是变量和函数,变量和函数也是全局对象的属性和方法。如下所示:

var person = new Object();
person.name = "zhangsan";  //添加属性
person.say = function(){  //添加方法
  console.log("我的名字:"+this.name);   
}

这样我们就创建了一个拥有属性和方法的简单对象了。虽然使用Object引用类型方式创建对象非常方便,但是我们在需要创建多个相似对象的时候会产生非常多的冗余代码,所以我们可以使用以下方式进行一下改进:

function createObj(name){
  var O = new Object();
   O.name = name;
   O.say = function(){
       console.log("我的名字:"+this.name);
   }
   return O;
}
var person1 = createObj("zhangsan");
var person2 = createObj("lisi"); 

我们将创建对象的代码封装在一个函数中,这样我们在需要创建对象实例的时候直接调用函数即可。对象的属性和方法这些不同的地方我们直接通过参数的方式传进去,这样就解决了创建多个相似对象代码冗余的问题,这种方式叫工厂模式

JavaScript的OOP - 创建对象

标签:

原文地址:http://www.cnblogs.com/suliang1100/p/4556512.html

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