javascript设计模式介绍(二) 构造函数模式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
javascript 设计模式介绍(二)构造函数模式
2016/04/22 0 我们可以通过创建自定义的构造函数,从而定义自定义对象类型
的属性和方法。
例如:
function Person(name.age,sex){ = name;this.age = age;this.sex
=
sex;this.sayName = function(){ alert(); }}然后我们实例一个Personvar person1 = new Person(john ,18, 男var person1 = new Person(Rose ,17, 女
我们注意到,Person()中的代码:
没有显式地创建对象;
直接将属性和方法赋给了this 对象;
没有return 语句。
此外,还应该注意到函数名Person 使用的是大写字母P。按照惯例,构造函数始
终都应该以一个大写字母开头,而非构造函数则应该以一个小写字母开头。这个做
法借鉴自其他OO 语言,主要是为了区别于ECMAScript 中的其他函数;因为构造
函数本身也是函数,只不过可以用来创建对象而已。
要创建Person 的新实例,必须使用new 操作符。以这种方式调用构造函数实际
上会经历以下4 个步骤:(1) 创建一个新对象;(2) 将构造函数的作用域赋给新对象
(因此this 就指向了这个新对象);(3) 执行构造函数中的代码(为这个新对象添加
属性);(4) 返回新对象。
person1 和person2 分别保存着Person 的一个不同的实例。这两个对象都有一个constructor(构造函数)属性,该属性指向Person,如下所示。
alert(person1.constructor == Person); //true alert(person2.constructor == Person); //true 对象的constructor 属性最初是用来标识对象类型的。但是,提到检测对象类型,
还是instanceof 操作符要更可靠一些。我们在这个例子中创建的所有对象既是Object 的实例,同时也是Person 的实例,这一点通过instanceof 操作符可以得到验
证。