在常见的面向对象语言中,经常会使用到类层次的静态变量,而通过dojo定义的类也能实现静态变量的需求,不过静态变量仅限于数组和对象类型。
需要注意的两点是:
1)对于原始类型的变量如数字、布尔值和字符串,dojo的类机制并没有提供实现静态属性的功能;
2)如果定义的数组或对象属性在constructor方法中被重新赋值,那么该属性将不再是静态属性,而是每个实例化对象都持有一份属于自己的备份了。
相关实例代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>dojo定义对象</title>
<script type="text/javascript" src="js/dojo-release-1.11.2/dojo/dojo.js" djConfig="parseOnLoad: true"></script>
<script>
//定义srr
dojo.declare("com.srr.Miss", null, {
name: "srr",
age: "26",
staticInfo:{count:0},
constructor: function(name, age) {
this.name = name;
this.age = age;
++this.staticInfo.count;
},
getName: function() {
return this.name;
},
getAge: function() {
return this.age;
}
});
//声明一个miss
var miss1 = new com.srr.Miss("沈荣荣1",22);
alert(miss1.getName()+"---"+miss1.getAge()+"---;静态变量值="+miss1.staticInfo.count);
//声明一个miss
var miss2 = new com.srr.Miss("沈荣荣2",23);
alert(miss2.getName()+"---"+miss2.getAge()+"---;静态变量值="+miss1.staticInfo.count);
</script>
</head>
<body>
</body>
</html>