JavaScript创建对象的常用模式
对象 面向对象语言有一个标志,那就是它们都有类的概念,通过类可以创建任意多个具有相同属性和方法的对象。 ECMAScript没有类的概念,它的对象也与基于类的语言中的对象有所不同。ECMAScript把对象定义为: 无序属性的集合,其属性可以包含基本值、对象或函数。 每个对象实例都是基于一个引用类型创建的,这个引用类型可以是ECMAScript原生类型,也可以是开发者定义的类型。 工厂模式 我们可以通过Object构造函数或对象字面量来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。 为解决上述问题,可以使用 工厂模式 创建对象。工厂模式抽象了创建具体对象的过程。 由于ECMAScript没有类,可以定义一种函数,用函数来封装以特定接口创建对象的细节。例如: function createStudent(name,age) { var obj = new Object(); obj.name = name; obj.age = age; obj.sayName = function(){ alert(obj.name); }; return obj; } var Bob = createStudent("Bob", 24); var Tom = createStudent("Tom", 28); 工厂模式虽然解决了创建多个相似对象的问题