JS创建对象的几种模式
1、工厂模式
考虑到javascript无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节
<script type="text/javascript">
function createPerson(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 = createPerson("zy","21","web devoloper ");
var person2 = createPerson("smirk","21","UI ");
person1.sayName();
person2.sayName();
</script>
工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题(即怎样知道一个对象的类型)
2、构造函数模式
javascript中的构造函数可用来创建特定类型的对象,可以创建自定义的构造函数,从而定义自定义对象类型的属性和方法。
<script type="text/javascript">
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.sayName = function(){
alert(this.name);
};
}
var person1 = new Person("zy","21","web devoloper ");
var person2 = new Person("smirk","21","UI ");
person1.sayName();
person2.sayName();
</script>
按照惯例,构造函数始终都应该以一个大写字母开头。
以这种方式调用构造函数实际上会经历一下四个步骤:
(1)创建一个新对象;
(2)讲构造函数的作用域赋给新对象
(3)执行构造函数中的代码(为这个新对象添加属性)
(4)返回新对象
前面例子的最后,person1和person2分别保存着Person的一个不同的实例,这两个对象都有一个constructor属性,属性指向Person
alert(person1.constructor == Person);

浙公网安备 33010602011771号