本文详细解析JavaScript构造函数中四种成员的定义方式。通过示例代码展示如何利用闭包实现私有属性和方法,使用this定义公有及特权成员,以及通过构造函数本身定义静态成员。重点说明了公有方法在原型链与构造函数内定义的差异及顺序注意事项,帮助开发者掌握封装与继承的核心技巧。
以上为完整代码示例。
具体实现代码如下所示:
JavaScript 构造函数成员定义详解// 构造函数定义
function myClass(message)
{
// 定义公有属性
this.myMessage = message;
// 定义私有属性
var _separator = ' -';
var _myOwner = this;
// 定义私有方法
function showMessage()
{
alert(_myOwner.myMessage);
}
// 定义特权方法(同时具备公有访问权限)
this.appendToMessage = function(appendMessage)
{
this.myMessage += _separator + appendMessage;
showMessage();
}
}
// 定义公有方法
myClass.prototype.clearMessage = function()
{
this.myMessage = '';
}
myClass.prototype = {
clearMessage:function(){
this.myMessage = '';
}
}
// 定义静态属性
myClass.myName = 'SOBusiness';
// 定义静态方法
myClass.alertName = function()
{
alert(this.name);
} 注意:上述代码中公有方法的声明展示了两种不同方式。在实际开发中,通常只需选择其中一种即可。若需同时使用两种方式,必须严格注意声明顺序,以避免后续定义覆盖或清空先前定义的方法。