Javascript系列教程:面向对象讲解(四)

私有属性、实例属性、类属性

–这段知识是基于网上流传的李赞红的JS-OOP.ppt讲解的。

  • 私有属性只能在构造函数内部定义与使用;
  • 实例属性必须在对象实例化后使用;
  • 类属性直接通过类名去使用

例:

1、私有属性

var Me={
_name:"Wang Hongjian",
_age:23
}

调用方法:Me._name,假如现在声明另一个空对象Her,由于作用域Her无法调用_name属性。

2、实例属性:实例属性可以有两种声明方式,一是通过原型函数prototype声明;另一种是通过this关键字声明的。

<script type="text/javascript">
var Me=function(){
this._age=23;
this._name="Wang Hongjian";
Me.prototype._sayHi=function(){
alert("Hello,everybody");
}
}
var M=new Me();
alert(M._name + "'s age is " + M._age);
M._sayHi();
</script>

3、类属性:直接通过类名去使用

<script type="text/javascript">
var Me={};
Me.sayHi="Hi,everybody!");
alert(Me.sayHi);
</script>

私有方法、实例方法、类方法

与属性相对应,方法也可分为私有、实例、及类方法。私有方法只可在对象中使用;实例方法必须在对象实例化后才能使用;类方法可以直接通过类名使用。

1、私有方法

<script type="text/javascript">
var Me={
_sayHi:function(){
alert("Hello,everybody!");
}
}
Me._sayHi();
</script>

2、静态方法:语法及使用与静态属性类似

<script type="text/javascript">
var Me=function(){
this.sayHi=function(){
alert("Hello,everybody!");
};
Me.prototype.readBook=function(){
alert("人生若只初相见,何事秋风悲画扇?");
};
}
var M=new Me();
M.sayHi();
M.readBook();
</script>

3、类属性

<script type="text/javascript">
var Me={};
Me.sayHi=function(){
alert("Hi,everybody!");
}
Me.sayHi();
</script>