许多传统语言如java等可以将属性和方法定义为共有、私有或者受保护的,以此来限制对这些属性和方法的访问,但可以通过一个包装方法对其读写。这些包装方法通常被称为getter和setter,你可以通过这些方法读取或者设置对象实例的属性值。但javascript却未曾定义这些方法,下面就来实现这两个方法,用到闭包。
-
getter、setter方法实现
var Door = (function(){
function Door(){};
var _isLocked = false;
var _isAlarmed = false;
var _alarmMessage = "Alarm activated!";function _alarm(){ _isAlarmed = true; alert(_alarmMessage); } function _disableAlarm(){ _isAlarmed = false; } Door.prototype.lock = function(){ _islocked = true; _alarm(); }; Door.prototype.unlock = function(){ _islocked = false; _disableAlarm(); }; // getter方法 Door.prototype.getIsLocked = function(){ return _islocked; }; // setter方法 Door.prototype.setAlarmMessage =function(message){ _alarmMessage = message; }; return Door; })();
网友评论