标签:
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");
我们将创建对象的代码封装在一个函数中,这样我们在需要创建对象实例的时候直接调用函数即可。对象的属性和方法这些不同的地方我们直接通过参数的方式传进去,这样就解决了创建多个相似对象代码冗余的问题,这种方式叫工厂模式。
标签:
原文地址:http://www.cnblogs.com/suliang1100/p/4556512.html