美文网首页
js中的getter和setter方法实现

js中的getter和setter方法实现

作者: sdcV | 来源:发表于2017-07-08 22:08 被阅读53次
    许多传统语言如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;
      })();

    相关文章

      网友评论

          本文标题:js中的getter和setter方法实现

          本文链接:https://www.haomeiwen.com/subject/yqmjhxtx.html