关于公有、私有、特权、静态成员的简单代码

一段代码解决概念模糊问题嘛~ o( ̄▽ ̄)ブ

function MyConstructor(message) {		 
 	this.myMessages = message;

 	// 私有属性和私有方法
 	// (特权方法可访问)
 	// (公有方法无法访问)
 	var add = '+';		 	
 	var myOwner = this;
 	function alertMessages(){
 		alert(myOwner.myMessages);
 	}
 	alertMessages();

 	// 特权方法
 	// (可访问私有成员)
 	this.appendToMessage = function(string) {
 		this.myMessages += add+string;
 		alertMessages();
 	}
}

// 公有方法
// (不能在MyConstructor上直接调用)
// (不能访问私有属性和私有方法)
MyConstructor.prototype.clearMessage = function(string) {
 	this.myMessages += '-'+string;
}

// 静态属性和静态方法-实例自身的属性和方法
// (此处的MyConstructor为function的实例)
MyConstructor.haha = "haha";
MyConstructor.sayhaha = function() {
	console.log(MyConstructor.haha);
};
MyConstructor.sayhaha(); // 返回“haha”


var myObj = new MyConstructor('hello');
myObj.clearMessage("clear"); // 调用公有方法
myObj.appendToMessage(' world'); // 调用特权方法
posted @ 2015-11-25 18:01  秋晨  阅读(182)  评论(0编辑  收藏  举报