じ☆ve冰风 发表于 2024-11-21 19:57:07

js里的attr_XXX

JAVASCRIPT 代码
Object.prototype.attr_accessor = function(name,callBack){
      this = function(value){
                if(value !== undefined){
                        this['_'+name] = value;
                        callBack();
                        returnthis;
                }else{
                        returnthis['_'+name];
                };
      };
      returnthis;
};

Object.prototype.attr_reader = function(name){
      varname = arguments;
      this = function(value){
                returnthis['_'+name];
      };
      returnthis;               
}

Object.prototype.attr_writer = function(name){
      this = function(value){
                if(value !== undefined){
                        this['_'+name] = value;
                        returnthis;
                }else{
                        return undefined;
                };
      };
      returnthis;
}

顺手造了个轮子。类似于ruby的attr_XXX系列方法。带参数就是修改,不带参数就是访问。其中attr_accessor中的callBack是传入一个函数,在属性值被修改的时候触发的回调事件
要注意的是不能再回调事件里写对该事件的修改。不然会成死循环。多个属性的话也不能成环。
另外,对属性的访问和修改可以通过调用"_"+属性名来直接访问

            本帖来自P1论坛作者墨凌羽,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=386207若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页: [1]
查看完整版本: js里的attr_XXX