1. 使用构造函数
作用:要创建同一个对象的多个实例,就要反复创建实例的过程:创建对象、添加属性、定义方法等就会很麻烦。因此要考虑构造函数
只有一个全局实例的对象有时候成为“单例”对象,在有些场合很实用,如程序的用户只有一个相关的userProfile对象,其中包括他的名字、最后访问的页面等类似属性。
代码块:
<script>
function diyObject () {
this.info = '构造函数的内容';
this.showInfo = function () { //匿名函数
alert(this.info);
}
this.resetInfo = function ( newInfo ) {
this.info = newInfo;
}
}
var func = new diyObject();//var 不写也不错
func.showInfo();
</script>
对象的实例化:(设置成员变量)
var = func = new diyObject( );
调用和查看方法和属性:
func.showInfo( );
var x = func.info;
func.info = “构造函数的内容被覆盖”;
创建多个实例:
var func1 = new diyObject( );
var func2 = new diyObject( );
Body内代码实现:
<input type="botton" value="func1.showInfo()" οnclick="func1.showInfo()"/>
<input type="botton" value="func2.showInfo()" οnclick="func2.showInfo()"/>
<input type="botton" value="func1.resetInfo()" οnclick="func1.resetInfo('构造函数的内容被改变,请注意!!!')"/>
<input type="botton" value="func1.showInfo()" οnclick="func1.showInfo()"/>
2. 构造函数参数
在把对象实例化时,还可以通过给构造函数传递一个或多个参数来定制对象。
<script>
function Person (personName, age) {
this.name = personName;
this.age = age;
this.info = 'My name is ' + this.name + ', this year, I am ' + this.age + ' years old. ';
this.showInfo = function() {
alert(this.info);
}
}
person1 = new Person("Yan",18);
person2 = new Person("Wus",18);
person1.showInfo( );
person2.showInfo( );
</script>