JavaScript私有变量

JavaScript 2013-09-10 JavaScript,私有变量,程序设计

如果接触过其它语言的,应该会接触过私有变量这一个概念。所谓私有就是没有受保护,不能修改与访问,只能通过你给的API接口访问与修改。但是在JavaScript中并没有私有变量这个概念,所有成员都可以通过下标访问与修改,如:


var F = function(){};

F.prototype.name = "zhangsan";

var a = new F();

alert( a.name ); // zhangsan

a.name = "lisi";

alert( a.name ); // lisi

在JavaScript里,实例的成员变量就这样轻而易举的被修改,设置delete。有不少这么干:


var F = function(){};

// 变量前面加下划线
F.prototype._name = "zhangsan";

var a = new F();

// 访问跟正常访问一样
alert( a._name ); // zhangsan

// 实际上也能轻而易举的被修改
a._name = "lisi";

alert( a._name ); // lisi

加下划线做位私有变量貌似很普遍,认可。但这仅是一种大家默认的公约,其实利用JavaScript特性,我们可以这样定义私有变量:

(function(window){
	
	// 定义私有变量默认值
	var name = "zhangsan";
	
	var F = function(){};

	// 访问私有变量
	F.prototype.getName = function(){
		return name;
	};
	
	// 更新私有变量
	F.prototype.setName = function(str){
		name = str;
	};
	
	window.F = F;
	
})(window);


var a = new F();

a.getName();	// zhangsan

a.setName("lisi");

a.getName();	// lisi

这种方式也是被使用最多最广泛的方式。

文字链接:《JavaScript私有变量

文章地址:http://www.qttc.net/201309372.html

除非标注,琼台博客所有博文均为原创,转载请加文字链接注明来源

乳名?小名?昵称?网名?均可

email,放心,我不会给你乱投广告的

想获得回访就把你的站点URL写上(没有留空)

[NOTICE]木要投放广告
[NOTICE]木要骂人,说不该说的话
[NOTICE]自由言论,但要遵纪守法

Comments 0

    Hi,你想第一个做沙发么?