自贡市规划建设局网站,开发一个app平台大概需要多少钱?,南京网站制作案例,响应式外贸网站价格转载自 用JAVASCRIPT实现静态对象、静态方法和静态属性
Javascript语言的面向对象特征很弱#xff0c;其他面向对象语言在创建类时只要使用关键字static即可指定类为静态类#xff0c;Javascript没有提供static这样的关键字#xff0c;要让Javascript也具有“静态”特性只…转载自 用JAVASCRIPT实现静态对象、静态方法和静态属性
Javascript语言的面向对象特征很弱其他面向对象语言在创建类时只要使用关键字static即可指定类为静态类Javascript没有提供static这样的关键字要让Javascript也具有“静态”特性只有靠一些“奇技淫巧”了。
代码中列举了两种静态方法/属性的实现方式一种是静态类的静态方法和属性另一种是非静态类的静态方法和属性代码说明都写在每行的代码注释里这里就不重复了。
/****************************************
* 方法一
* 类、方法、属性都为静态类型
* 不能创建实例
*****************************************/
var Time {today: ‘2009-3-8′, weather: ‘rain’, show: function() {
alert(‘Today is ‘ this.today);
}
};
//静态对象可直接使用无需创建实例
alert(‘It is ‘ Time.weather ‘ today.’);
Time.show(); //下面的代码会出错因为静态类不能创建实例
//var t new Time();
//t.show();/****************************************
* 方法二
* 普通对象同时拥有静态和非静态属性、方法
* 可以用实例化
* 注意
* 1.静态方法/属性使用类名访问
* 2.非静态方法/属性使用实例名访问
*****************************************/
function Person(name) {
//非静态属性
this.name name;
//非静态方法
this.show function() {
alert(‘My name is ‘ this.name ‘.’);
}
}
//添加静态属性人都是一张嘴
Person.mouth 1;
//添加静态方法哇哇大哭
Person.cry function() {
alert(‘Wa wa wa …’);
};
//使用prototype关键字添加非静态属性每个人的牙可能不一样多
Person.prototype.teeth 32; //非静态方法必须通过类的实例来访问
var me new Person(‘Zhangsan’);
//使用非静态方法、属性
me.show();
alert(‘I have ‘ me.teeth ‘ teeth.’);
//使用静态方法、属性
Person.cry();
alert(‘I have ‘ Person.mouth ‘ mouth.’);