js中的getter和setter方法实现

许多传统语言如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;
    })();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,355评论 1 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,065评论 19 139
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 8,200评论 2 17
  • Chapter 6 面向对象的程序设计 理解对象 使用对象字面量语法创建对象var person = { n...
    云之外阅读 708评论 0 1
  • 本文参加#未完待续,就要表白#活动,本人承诺,文章内容为原创,且未在其他平台发表过。” 闭上眼,回顾曾经走过的旅程...
    BABO1阅读 405评论 0 1

友情链接更多精彩内容