本文通过一个JavaScript类定义示例,详细解析了私有变量、私有方法、特权方法以及公共成员的实现方式。重点说明特权方法如何访问所有成员,而公共原型方法无法直接访问私有成员的机制,并展示了实例化后的调用结果。
JavaScript类定义:私有成员、特权方法与公共方法详解
代码示例如下:
<script>
// 定义一个 JavaScript 类
function JsClass(privateParam/* */,publicParam){// 构造函数
var priMember = privateParam; // 私有变量
this.pubMember = publicParam; // 公共变量
// 定义私有方法
function priMethod(){
return "priMethod()";
}
// 定义特权方法
// 特权方法可以访问所有成员
this.privilegedMethod = function(){
var str = "这是特权方法,我调用了\n";
str += " 私有变量:" + priMember +"\n";
str += " 私有方法:" + priMethod() +"\n";
str += " 公共变量:" + this.pubMember +"\n";
str += " 公共方法:" + this.pubMethod();
return str;
}
}
// 添加公共方法
// 不能调用私有变量和方法
JsClass.prototype.pubMethod = function(){
return "pubMethod()";
}
// 使用 JsClass的实例
JsObject = new JsClass("priMember","pubMember");
//alert(JsObject.pubMember);//弹出pubMember信息
//alert(JsObject.priMember);//弹出undefined信息
//alert(JsObject.pubMethod());//弹出pubMethod信息
//alert(JsObject.priMethod());//弹出"对象不支持此属性或方法"的错误
alert(JsObject.privilegedMethod());
</script>